定位
1.定位的作用
如果我们想让两个标签叠在一起显示使用定位!!!标准流(无法实现快标签左右的问题) 浮动(无法实现标签的层叠问题)
2.使用定位的步骤
1.设置定位方式
属性名position:static(静态定位) relative(相对定位) absolute(绝对定位) fixed(固定定位 )
2.设置偏移值
偏移值设置分别有两个方向,水平和垂直方向各选一个即可
水平方向 left 数字+px 距离左边的距离
水平方向 right 数字+px 距离右边的距离
垂直方向 top 数字+px 距离上边的距离
垂直方向 bottom 数字+px 距离下边的距离
3.对四种定位具体介绍
1.静态定位:
没写postion就是静态定位(原本的就是静态定位)
2.相对定位
特点:1.占有原来的位置 2.仍然具有原有标签的显示特点 3.改变的位置是参照自己原来的位置
注意:如果right和left,top和bottom都有.和顺序没关系.left和top生效,right和bottom不生效
3.绝对定位
介绍:拼爹型定位,相对于非静态定位的父元素进行定位移动
1.先找已经定位的父级,如果有这样的父级以这个父级为参照物进行定位
2.有父级,但父级没有定位,以浏览器窗口为参照物进行定位
工作中一般的定位方式为:父为相对定位子为绝对定位
代码:postion:absolute;
特点: 1.脱标 不占位
2.改变标签的显示特点:变为: 行内块
3.就近找定位的父级(广义)如果找不到,就是body也就是整个窗口
案例:绝对定位的居中
首先我们观察到使用绝对定位后盒子不能使用margin auto居中
使用下面代码使盒子居中
left: 50%;
margin-left: -100px;
top: 50%;
margin-top: -100px;
总结我们标准流使用:margin auto实现居中,绝对定位使用上面的方法(还可以使用 transform: translate(-50%, -50%);位移自己宽度高度的一半,可以自己试试)
案例:定位二维码
实例代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
li {
list-style: none;
}
a {
float: left;
display: block;
text-align: center;
width: 120px;
height: 50px;
border: 1px solid black;
line-height: 50px;
background-color: pink;
text-decoration: none;
color: black;
}
ul li .app {
position: relative;
}
ul li .app .code {
position: absolute;
left: 50%;
top: 51px;
transform: translate(-50%);
}
.wapper {
width: 600px;
margin: 0 auto;
}
.nav {
height: 50px;
}
</style>
</head>
<body>
<div class="nav wapper">
<ul>
<li><a href="#">平台二维码</a></li>
<li><a href="#">平台二维码</a></li>
<li><a href="#">平台二维码</a></li>
<li><a href="#" class="app">平台二维码<img src="./img/tupian2.png" alt="" class="code"></a></li>
<li><a href="#">平台二维码</a></li>
</ul>
</div>
</body>
</html>
案例:定位图片下面的黑框
4.固定定位
介绍:相对于浏览器进行定位移动
代码:position:fixed
特点:1.需要配合方位属性实现移动
2.相对于浏览器可视区域进行移动
3.在页面中不在位置->脱标
应用场景让盒子固定在屏幕中的某个位置 (注意该定位的盒子具有行内块的特点:没有东西撑不开盒子所以要设置尺寸)
4.元素的显示层级
不同;布局方式元素的层级关系:
标准流<浮动<定位
不同定位之间的层级关系:(标准流和定位之间都不存在谁压谁的问题)
相对,绝对,固定默认层级相同
默认情况下,定位的盒子,后来者居上
z-index:整数;取值越大,显示顺序越靠上,z-index的默认值是0(注意:z-index必须配合定位才会生效)
5.定位装饰
1.vertical-align:middle:
浏览器遇到行内块标签做文字处理的时候.默认文字是按基线对齐的
(只要是垂直方向对不齐就会这样)
2.光标的类型
3.边框圆角
场景:让盒子四个角变得圆润,增加页面细节,提升用户体验
属性名:border-radius
常见取值:数字+px,百分比
赋值规则:从左上角开始赋值,然后顺时针赋值,没有赋值的看对角
(常用的赋一个值的,圆形,胶囊型)
4.元素本身的隐藏
visibility:hidden 占位隐藏(工作中不常用)
display:none 不占位隐藏(常用)
举个例子 还记得我们的二维码案例吗,在上面代码中加上红框里的代码就可以实现,鼠标悬停则显示二维码,鼠标移走则不显示
5.透明属性
场景:让某元素整体(包括内容)一起变透明
属性名:opacity 属性值0~1 0完全透明, 1完全不透明
学到这里,基本就算学完了,还有一些极个别的样式,后期工作需要现查就好.
后面我会在更新一篇项目文件,大家在综合熟悉一下.点关注不迷路!!!!!!