文章目录
前言
再不学没饭吃了~
一、定位
让盒子固定在页面某个位置,或者自由的在某个盒子内移动
示例:
二、定位组成:定位=定位模式+边偏移
1.定位模式决定定位方式
2.边偏移决定最终位置
top bottom left wright
1 相对定位(relative)
- 相对于自己原来位置移动
- 不脱标,继续保留原来位置
2 绝对定位(absolute)
- 相对于父亲移动
- 注意:父亲必须定位,否则相对于页面移动
- 定位加一个 position:relative;
<title>绝对定位</title>
<style>
.yeye {
position: relative;
width: 1000px;
height: 1000px;
background-color: blue;
}
.father {
/* position: relative; */
width: 500px;
height: 500px;
background-color: yellow;
}
.son {
position: absolute;
bottom: 100px;
left: 100px;
width: 200px;
height: 200px;
background-color: pink;
}
</style>
</head>
<body>
<div class="yeye">
<div class="father">
<div class="son"></div>
</div>
</div>
</body>
- 注意:盒子相对于最近的带定位的一个盒子移动
- 优点:不保留原来位置(人走财空)
3 子绝父相
由来
- 子级绝对定位,可放到父盒子里面任一个地方,不影响其他的兄弟盒子
- 父盒子需要加定位限制子盒子在父盒子内显示
- 父盒子布局时,需要占有位置,因此只能为相对定位
总结: 父级需要占有位置,为相对定位,子盒子不需要占有位置,为绝对定位
案例
<ul>
<li>
<em>
<img src="images/hot.png" alt="">
</em>
<img src="images/pic.png" alt="">
<h4>
Think PHP 5.0 博客系统实战项目演练
</h4>
<div class="info">
<span>高级</span> • 1125人在学习
</div>
</li>
.box-bd ul li{
position: relative;
float: left;
width: 228px;
height: 270px;
margin-bottom: 15px;
margin-right: 15px;
background-color: #fff;
}
4 固定定位 fixed
页面在走,元素不动
特点:
- 以浏览器的可视窗口为参照点移动元素,即:不管页面窗口大小,他都完全出现在页面中
- 和父元素无关
- 不随滚动条移动
- 固定定位不占有原来位置
固定定位小技巧(算法)
<title>固定定位小技巧</title>
<style>
.w {
width: 800px;
height: 1400px;
background-color: pink;
margin: 0 auto;
}
.fixed {
position: fixed;
top: 20px;
/* 1. 走浏览器宽度的一半*/
left: 50%;
/* 2.利用margin 走版心盒子宽度的一半距离 */
margin-left: 404px;
width: 50px;
height: 150px;
background-color: skyblue;
}
</style>
</head>
<body>
<div class="fixed"></div>
<div class="w">版心盒子 800像素</div>
</body>
5 粘性定位 (了解)
语法
选择器{ position: sticky; top: 10px; }
相对定位和固定定位的混合(兼容性差,IE不支持)
三、定位的叠放次序
语法
z-index
选择器{
z-index: ;
/*
数值越大,盒子越靠上
数字后不可以加单位
*/
}
四、定位的拓展
绝对定位水平垂直居中
margin: 0 auto;
无法实现绝对定位水平垂直居中
算法:
left:50%;
让盒子的左侧移动到父级元素的水平中心位置margin-left:-100px;
让盒子向左移动自身宽度的一半
<title>绝对定位水平垂直居中</title>
<style>
.box {
position: absolute;
top: 20px;
/* 1.让盒子左侧一道父级元素的水平中心位置 */
left: 50%;
/* 2.然盒子左侧移动自身宽度的一半 */
margin-left: -150px;
width: 300px;
height: 200px;
background-color: pink;
/* margin: 0 auto; */
}
</style>
</head>
<body>
<div class="box"></div>
</body>
定位特殊特性
绝对定位和固定定位也和浮动类似。
- 行内元素添加绝对或者固定定位,可以直接设置高度和宽度
- 块级元素添加绝对或者固定定位,如果不给宽度或者高度,默认大小是内容的大小。
- 脱标的盒子不会触发外边距塌陷浮动元素、绝对定位(固定定位)元素的都不会触发外边距合并的问题。
总结
- 是否占有位置
- 以谁为基准点移位