原文传送门
定位方式
1.简介
通过position属性实现对元素的定位,有四种定位方式
常用取值:
取值 含义 说明
static 默认值 按照常规文档流进行显示
relative 相对定位 相对于标签原来的位置进行的定位
absolute 绝对定位 相对于第一个非static定位的父标签的定位
fixed 固定定位 相对于浏览器窗品进行定位
设置定位方式后,还要设置定位属性(偏移量):top、bottom、left、right
2.相对定位
先设置元素的position属性为relative,然后再设置偏移量
3.绝对定位
先设置父标签为非static定位,然后设置元素的position属性为absolute,最后再设置偏移量
注意:
一般来说都会将父标签设置为非static定位
如果父标签不是非static定位,则会相对于浏览器窗口进行定位
设置元素为绝对定位后,元素会浮到页面上方
4.固定定位
先设置元素的position属性为fixed,然后再设置偏移量
设置元素为固定定位后,元素会浮动在面面上方
5.z-index
设置元素定位方式后,元素会浮在页面上方,此时可以通过z-index属性设置优先级,控制元素的堆叠顺序
取值为数字,值越大优先级越高,默认为auto(大多数浏览器默认为0)
注意:只能给非static定位的元素设置z-index属性
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
#container{
width:800px;
border:1px solid #000000;
position:relative;
}
.div1,.div2,.div3,.div4{
width:100px;
height:50px;
}
.div1{
background:red;
position:relative;/* 相对定位 */
top:20px;
left:50px;
z-index:-5;
}
.div2{
background:blue;
position:absolute;
left:100px;
bottom:50px;
z-index:-8;
}
.div3{
background:green;
position:fixed;
bottom:50px;
left:100px;
}
.div4{
background:cyan;
}
</style>
</head>
<body>
<div id="container">
<div class="div1">div1</div>
<div class="div2">div2</div>
<div class="div3">div3</div>
<div class="div4">div4</div>
</div>
</body>
</html>
示例:
2.元素的显示和隐藏
2.1 display
通过display属性设置元素是否显示,以及是否独占一行
常用取值:
取值 含义 说明
none 不显示
inline 显示为内联元素,行级元素的默认值 将块级元素变为行级元素,不再独占一行
block 显示为块级元素,块级元素的默认值 将行级元素变为块级元素,独占一行
inline-block 显示为内联元素,但是可以设置宽和高 在inline基础上允许设置宽度和高度
注意:
行级元素是无法设置宽度和高度的,可以为行级元素设置 display:inline-block ,然后就可以设置宽和高了
2.2 visibility
也可以通过visibility属性设置元素的显示和隐藏
常用属性:
visible 显示
hidden 隐藏
2.3 区别
display隐藏时不再占据页面中的空间,后面的元素会占用其位置
visibility隐藏时会占据页面中的空间,位置还保留在页面中,只是不显示