定位流之子绝父相

Posted myErebos

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了定位流之子绝父相相关的知识,希望对你有一定的参考价值。

定位流: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>

 

以上是关于定位流之子绝父相的主要内容,如果未能解决你的问题,请参考以下文章

css负边距之详解(子绝父相)

placeholder属性

css 定位详解

定位体系之浮动

z-index

沉淀期——定位