CSS中的重点和难点(绝对定位与相对定位)
绝对定位
设置position属性的时候,如果设置的属性值是absolute,此时就是绝对定位
绝对定位跟相对定位不同
影响后⾯的兄弟元素
相对body定位
在相对定位中,相对于原有位置进⾏定位的
在据对定位中,相对于body元素定位的
注意
设置top的时候,根据body的顶边定位
设置bottom的时候,相对于屏幕的底边定位
left和right是相对于body左右边定位的。
1 div {
2  width: 200px;
3  height: 200px;
4  background: green;
5  position: absolute;
6  /*top: 200px;*/
7  /*left: 100px;*/
8  /*bottom优先级低于top,要注释top*/
9  bottom: 200px;
10  right: 200px;
11
12 }
绝对定位影响宽⾼
在未设置盒⼦的宽度和⾼度的时候,我们可以通过绝对定位的偏移量:top,bottom,right, left来设置盒⼦的宽⾼
相对定位不可以
相对定位并没有修改盒⼦的宽⾼,宽度还是100%,⾼度还是内容的⾼度
绝对定位修改盒⼦的宽⾼,宽度不再是100%,宽度和⾼度都是由偏移量top,bottom,left,right定义的
就近原则
嵌套的盒⼦设置了绝对定位,它会寻离他最近的设置了定位的祖先元素(绝对定位,相对定位,固定定位),从⽽来定义相对的偏移量。
也就是说,此时不再以body定位,⽽是相对设置了定位的祖先元素定位
1 .box1 {
2  border: 1px solid #000;
3  padding: 50px;
4  width: 498px;
5  height: 498px;
6 }
7 .box2 {
8  border: 1px solid #000;
9  padding: 50px;
10  width: 398px;
11  height: 398px;
12  /*相对定位*/
13 position: relative;
14 }
15 .box3 {
16  border: 1px solid #000;
17  padding: 50px;
18  width: 298px;
19  height: 298px;
20 }
21 .box {
22  width: 50px;
23  height: 50px;
24  background: green;
25  /*据对定位,默认相对于body*/
26  position: absolute;
27  top: 50px;
28  left: 50px;
29 }
定位顶点
绝对定位是相对于⽗元素的padding定点(包含padding)进⾏定位设置的。设置border会影响定位的结果
1 .box
2 {
2 border: 50px solid #000;
3  padding: 50px;
4  width: 350px;
5  height: 350px;
6  /*相对定位*/
7  position: relative;
8 }
display
不论是⾏内元素,还是块元素,设置了绝对定位,display属性失效,此时有点类似inline-block,不论是块元素还是⾏内元素,都可以直接设置宽⾼
1 .box {
2  width: 50px;
3  height: 50px;
4  background: green;
5  /*据对定位,默认相对于body*/
6  position: absolute;
7  top: 50px;
8  left: 50px;
9  /*设置display失效了*/
10  display: inline;
11 }
压盖现象
元素设置了绝对定位,此时会有压盖现象,后⾯的元素会显⽰在前⾯的元素上⾯
后⾯还会继续讨论压盖现象
css固定定位绝对定位居中
我们可以根据绝对定位的特性让元素居中
绝对定位是相对于元素左上⾓的⼀点进⾏定位的,我们可以将其设置成50%,此时该元素的左上⾓⼀点将在页⾯中⼼,我们通过margin向上和向左平移宽⾼的⼀半,既可以实现元素的居中(兼容块元素和⾏内元素,绝对定位不会区分块元素和⾏内元素)
1 .box {
2  position: absolute;
3  top: 50%;
4  left: 50%;
5  margin: -100px -150px;
6  width: 300px;
7  height: 200px;
8  background: green;
9 }

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。