前端技巧汇总

embedded/2024/10/17 23:45:08/

保持盒子在中间位置:

中间盒子设置位绝对定位

上下左右都设置为0

margin为auto中间

<!doctype html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport"content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><link rel="stylesheet" href="./css/login.css">
</head>
<body><div class="head"><div class="main"></div></div>
</body>
</html>
html,
body {height: 100%;
}.head {width: 100%;height: 100%;background-color: pink;
}.head .main {position: absolute;left: 0;top: 0;right: 0;bottom: 0;width: 300px;height: 200px;margin: auto;background-color: #fff;border-radius: 10px;
}

鼠标经过显示多选项:

pull 用相对定位

pull-ul 用绝对定位 不占位置

采用:
<ul class="left fl"><li class="pull"><a href="#">移动客户端</a><ul class="pull-ul"><li><a href="#">新浪微博</a></li><li><a href="#">新浪微博</a></li><li><a href="#">新浪微博</a></li><li><a href="#">新浪微博</a></li><li><a href="#">新浪微博</a></li><li><a href="#">新浪微博</a></li></ul></li>
</ul>

两栏布局(数据单):

页面实现贴边,不会因为放大而留有空隙

设置整个大盒子

分为头部和主体部分,上下各百分之几

主体部分左边设置宽度和高度,右边仅设置高度

左边设置浮动,右边内边距为左边宽度,才能将字体显示出来

<!doctype html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport"content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><link rel="stylesheet" href="./css/t_index.css">
</head>
<body><div class="main"><div class="head"></div><div class="container"><div class="left"></div><div class="right">123455</div></div></div>
</body>
</html>
* {margin: 0;padding: 0;
}html,
body {height: 100%;
}.main {height: 100%;background-color: pink;
}.main .head {height: 10%;background-color: purple;
}.main .container {height: 90%;background-color: aquamarine;
}.main .container > .left {float: left;width: 200px;height: 100%;background-color: bisque;
}.main .container > .right {padding-left: 200px;height: 100%;background-color: blue;
}

三栏布局——普通

设置个主盒子占整个页面

左右栏高度占整个页面高度,设置为绝对定位,注意,定位距离顶部top为0

左右盒子定位各往两侧定位

中间盒子不设置宽度,内边距为左右盒子的宽度

<!doctype html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport"content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><link rel="stylesheet" href="./css/r_index_1.css">
</head>
<body><div class="main"><div class="left"></div><div class="container"></div><div class="right"></div></div>
</body>
</html>
* {margin: 0;padding: 0;
}html,
body {height: 100%;
}.main {height: 100%;background-color: aqua;
}.main > .left,
.main > .right {position: absolute;top: 0;width: 200px;height: 100%;background-color: red;
}.left {left: 0;
}
.right {right: 0;
}
.main > .container {padding: 0 200px;height: 100%;background-color: aquamarine;
}

三栏布局——圣杯布局

中间盒子,将主体写在左右盒子前面

三个盒子都需设置为左浮动,中间盒子需设置宽度和高度100%

将做盒子左外边距设置为负的100%,右边盒子设置为负的自身宽度

总体左右外边距为左右两盒子的宽度

对左右盒子设置相对定位

分别向左右移动自身的宽度

<!doctype html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport"content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><link rel="stylesheet" href="./css/r_index_2.css">
</head>
<body><div class="main"><div class="container">121121414</div><div class="left"></div><div class="right"></div></div>
</body>
</html>
* {margin: 0;padding: 0;
}html, 
body {height: 100%;
}.main {height: 100%;margin: 0 200px;
}.main .container {float: left;width: 100%;height: 100%;background-color: purple;
}.main .left {float: left;height: 100%;width: 200px;background-color: bisque;margin-left: -100%;position: relative;left: -200px;
}.main .right {float: left;height: 100%;width: 200px;background-color: blue;margin-left: -200px;position: relative;right: -200px;
}

三栏布局——双飞翼布局

中间盒子,将主体写在左右盒子前面

三个盒子都需设置为左浮动,中间盒子需设置宽度和高度100%

将做盒子左外边距设置为负的100%,右边盒子设置为负的自身宽度

在中间盒子内部在设置个div

左右边距为左右盒子的宽度

<!doctype html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport"content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><link rel="stylesheet" href="./css/r_index_3.css">
</head>
<body><div class="main"><div class="container"><div class="conf">1123114</div></div><div class="left"></div><div class="right"></div></div>
</body>
</html>
* {margin: 0;padding: 0;
}html,
body {height: 100%;
}.main {height: 100%;background-color: antiquewhite;
}.main .container {float: left;width: 100%;height: 100%;background-color: aqua;
}.main .container .conf {margin-left: 200px;margin-right: 200px;
}.main .left {float: left;width: 200px;height: 100%;background-color: aquamarine;margin-left: -100%;
}.main .right {float: left;width: 200px;height: 100%;background-color: blue;margin-left: -200px;
}

拖动的模态框:

1点击弹出层,会弹出模态框,并且显示灰色半透明的遮罩层

​ 2:点击关闭按钮,,关闭模态框 并且关闭灰色半透明遮罩层

​ 3:鼠标放到模态框最上面一行,可以按住鼠标拖拽模态框在页面中移动

​ 4:鼠标松开,可以停止拖动模态框移动

​ 在页面中拖拽的原理:

​ 鼠标按下并且移动,之后松开鼠标

​ 鼠标按下mousedown 鼠标移动 mousemove 鼠标松开mouseup

​ 拖拽:鼠标移动的过程中,获取最新的值赋值给模态框的left和top值,模态框就可以跟着鼠标移动

​ 鼠标按下触发的事件源 是最上面一行, id=“title”

​ 鼠标的坐标-鼠标在盒子内 的坐标 就是模态框真正的位置

​ 鼠标按下 得到鼠标在盒子的坐标

​ 鼠标移动 设置模态框的位置 鼠标的坐标-鼠标在盒子内 的坐标 移动事件要写在按下事件里面

​ 鼠标松开 停止拖拽,让移动事件解除

var loginEle = document.querySelector('#login')
var mask = document.querySelector('.login-bg')var linkEle = document.querySelector('#link')var closeBtn = document.querySelector('#closeBtn')var title = document.querySelector('#title')// 1点击弹出层,会弹出模态框,并且显示灰色半透明的遮罩层
linkEle.addEventListener('click', function () {loginEle.style.display = 'block'mask.style.display = 'block'
})// 2:点击关闭按钮,,关闭模态框 并且关闭灰色半透明遮罩层
closeBtn.addEventListener('click', function () {loginEle.style.display = 'none'mask.style.display = 'none'
})// 1) 鼠标按下  获取鼠标在盒子内的坐标
title.addEventListener('mousedown', function (e) {var x = e.pageX - loginEle.offsetLeftvar y = e.pageY - loginEle.offsetTop// 2)鼠标移动, 鼠标的坐标-鼠标在盒子内 的坐标 就是模态框的left和top的值document.addEventListener('mousemove', move)function move(e) {loginEle.style.left = e.pageX - x + 'px'loginEle.style.top = e.pageY - y + 'px'}// 鼠标松开,移除移动事件document.addEventListener('mouseup', function () {document.removeEventListener('mousemove', move)})
})

jQuery实现五角星案例:

绑定鼠标进入事件,鼠标到其中一个位置,将本身变为实心的,并将之前的元素选取出来变为实心,当点击摸一个位置,给当前位置设置个类,当鼠标移除后,查询是否有这个类,有的话就把当前和前面的元素变为实心,没有的话就全部变成空心

$(function () {var wjx_none = '☆'var wjx_sel = '★'// 鼠标放上去当前的li和之前所有的li内容全部变为实心五角星  移开变为空心$('.comment li').on('mouseenter', function () {// 当前的变为实心// $(this).text(wjx_sel).prevAll('li').text(wjx_sel)// $(this).nextAll('li').text(wjx_none)// end()  结束之后再使用,相当于重新一行再次使用this$(this).text(wjx_sel).prevAll('li').text(wjx_sel).end().nextAll('li').text(wjx_none)})$('.comment li').on('mouseleave', function () {// current用来记录离开时的星星if ($('li.current').length === 0) {$('.comment li').text(wjx_none)} else {$('li.current').text(wjx_sel).prevAll('li').text(wjx_sel).end().nextAll('li').text(wjx_none)}})$('.comment li').on('click', function () {$(this).attr('class', 'current').siblings('li').removeAttr('class')})
})
<!-- ★ -->
<ul class="comment"><li></li><li></li><li></li><li></li><li></li>
</ul>

http://www.ppmy.cn/embedded/127759.html

相关文章

ADMEMS矩阵

什么是ADMEMS矩阵&#xff1f; ADMEMS矩阵是架构设计中的一种需求分析工具&#xff0c;它的目标是通过系统化的方式分析和整理架构设计中的多层次需求&#xff0c;确保业务需求、用户需求、技术实现、约束条件等都能够得到合理的平衡。矩阵的核心是将广义功能、质量要求和约束…

任务与微任务

JavaScript 本质上是一门单线程语言。自从定时器&#xff08;setTimeout() 和 setInterval()&#xff09;加入到 Web API 后&#xff0c;浏览器提供的 JavaScript 环境就已经逐渐发展到包含 任务调度 、 多线程应用开发 等强大的特性。 JavaScript 执行上下文 JavaScript 代码…

Github 2024-10-14开源项目周报Top14

根据Github Trendings的统计,本周(2024-10-14统计)共有14个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目7C++项目2C项目2Swift项目1Jupyter Notebook项目1Java项目1Rust项目1Python中的算法实现集合 创建周期:2831 天开发语言:Python协议…

C++ AVL树

大家好呀&#xff0c;我是残念&#xff0c;希望在你看完之后&#xff0c;能对你有所帮助&#xff0c;有什么不足请指正&#xff01;共同学习交流哦&#xff08;不能私学&#xff0c;谁私学谁是&#xff09; 本文由&#xff1a;残念ing原创CSDN首发&#xff0c;如需要转载请通知…

探索 Jupyter 核心:nbformat 库的神秘力量

文章目录 探索 Jupyter 核心&#xff1a;nbformat 库的神秘力量1. 背景介绍&#xff1a;为何选择 nbformat&#xff1f;2. nbformat 是什么&#xff1f;3. 如何安装 nbformat&#xff1f;4. 简单的库函数使用方法4.1 读取 Notebook 文件4.2 修改 Notebook 中的单元格4.3 添加 M…

洗衣店订单管理:Spring Boot技术实现

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常适…

C++、Python 、JavaScript、Java 、Go 编程资源大全中文版

C、Python、JavaScript、Java 、Go 编程资源大全中文版 https://github.com/jobbole C 资源大全中文版 https://github.com/jobbole/awesome-cpp-cn/blob/master/README.md Python 资源大全中文版 https://github.com/jobbole/awesome-python-cn JavaScript 资源大全中文…

【HarmonyOS】HMRouter使用详解(三)生命周期

生命周期&#xff08;Lifecycle&#xff09; 使用HMRouter的页面跳转时&#xff0c;想实现和Navigation一样的生命周期时&#xff0c;需要通过新建生命周期类来实现对页面对某一个生命周期的监控。 新建Lifecycle类 通过继承IHMLifecycle接口实现生命周期接口的方法重写。 通过…