定位流之子绝父相
定位流:position
分类:1.相对定位:(relative)不脱离标准流,还会占空间配合,相对在标准流的位置运动(top,right同一个方向上只用一个属性等使(相对以前在标准流的位置来移动)(在相对定位中用margin和padding属性会影响整个网页布局)
应用场景:(1)用于对元素微调(2)配合绝对定位使用
2.绝对定位:(absolute)脱离标准流,默认相对于body中的位置运动,在标准流里行内和块级元素是会被区分的行内不能设置宽高,但在脱离标准流后就可以设置了,如定位流和浮动流;看把(absolute放在哪)如果放在你需要移动的盒子里那就直接相对body运动,如果放在它的父盒子里那就相对父盒子运动。放在它爷盒子里就相对爷盒子里;如果自己,父盒子,爷盒子都有绝对定位,则以最近的盒子做参考点(父盒子,爷盒子)(只有静态定位不满足)
重要注意:这里的body是指打开浏览器网页的那个窗口大小,用绝对定位盒子在左下角只是在窗口的最下角,不是真正的body,绝对定位会忽略父元素的padding 水平居中:(margin:0 auto;不适用于绝对定位)用百分比距离盒子的哪边永远是多少距离不会随着宽高而变化,永远距离整个宽度的百分之几
实现水平居中代码:left:50%;margin-left:-150px(这个长度是盒子本身长度的一般)容易理解
3.静态定位:默认情况在标准流中就是静态定位
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>定位流</title> 6 <style> 7 *{ 8 margin: 0; 9 padding: 0; 10 } 11 div{ 12 width: 200px; 13 height: 200px; 14 } 15 .box1{ 16 position: relative; 17 background-color:red; 18 top: 20px; 19 } 20 .box2{ 21 position: absolute; 22 right: 0px; 23 bottom: 0px; 24 background-color:green; 25 } 26 .box3{ 27 background-color:yellow; 28 } 29 </style> 30 </head> 31 <body> 32 <div class="box1"></div> 33 <div class="box2"></div> 34 <div class="box3"></div> 35 </body> 36 </html>
只用相对定位不脱离标准流,对网页布局还是有影响的
只用绝对定位,位置会随窗口的宽高而变化
同时使用(子绝父相):子盒子会以父盒子做参考点(企业开发中常用)
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>子绝父相</title> 6 <style> 7 ul{ 8 list-style: none; 9 width: 600px; 10 height: 50px; 11 margin: 0 auto; 12 margin-top: 100px; 13 background: grey; 14 line-height: 50px; 15 } 16 li{ 17 float: left; 18 width: 100px; 19 height: 50px; 20 text-align: center; 21 } 22 .quan{ 23 background: #cccccc; 24 position: relative; 25 } 26 img{ 27 /*position: relative;*/ 28 /*right: 16px;*/ 29 /*top: -15px;*/ 30 /*position: absolute;*/ 31 /*right: 548px;*/ 32 /*top: 100px;*/ 33 position: absolute; 34 right: 0px; 35 top: 0; 36 } 37 </style> 38 </head> 39 <body> 40 41 <ul> 42 <li>服装</li> 43 <li>美妆</li> 44 <li>京东超市</li> 45 <li class="quan"> 46 全球购 47 <img src="//m.360buyimg.com/babel/jfs/t14287/250/2085505084/2379/5a9b10c1/5a6a9058N36d84e8a.png" width="40px"></li> 48 <li>闪购</li> 49 <li>拍卖</li> 50 </ul> 51 </body> 52 </html>