绝对定位元素:position
值为absolute
或者fixed
的元素
对于绝对定位元素来说:
定位参照对象的宽度 =
left
+right
+margin-left
+margin-right
+绝对定位元素的实际占用宽度定位参照对象的高度=
top
+bottom
+margin-top
+margin-bottom
+绝对定位元素的实际占用宽度
官方文档中:margin-left
和margin-right
和margin-top
和margin-bottom
的值默认为0
实现子元素完全占据父元素
1 |
|
定位参照对象的宽度 = left
+right
+margin-left
+margin-right
+绝对定位元素的实际占用宽度
当将left
、right
设置为0
时,margin-left
、margin-right
默认值也是0
,最终定位参照对象(父元素)的宽度 = 绝对定位元素(子元素)的实际占用宽度,这样便可以实现子元素完全占据父元素宽度。
当将top
、bottom
也设置为0
时,margin-top
、margin-bottom
默认值也是0
,最终定位参照对象(父元素)的高度 = 绝对定位元素(子元素)的实际占用高度,这样便可以实现子元素完全占据父元素高度。
1 |
|
实现内容居中
left
、right
、top
、bottom
的默认值为auto
定位参照对象的宽度 = left
+right
+margin-left
+margin-right
+绝对定位元素的实际占用宽度
如果给参照对象设置了宽度(400px
),也给绝对定位元素设置了宽度(200px
),则还剩200px
。但是由于left
、right
的默认值为auto
,如果它们两者均为auto
时,绝对定位元素(子元素)将处在它如果作为静态元素时的。如果left
、right
的值保持默认值auto
不变,将会有4个auto
,浏览器将无法计算出该给margin-left
和margin-right
的auto
分配多少。
因此,需要将left
、right
的值设置为一个固定的值,一般设置为0
,或者其他值(左右相等即可),再指定margin-left
和margin-right
的值为auto
,就会使子元素实现居中效果。
1 |
|
同理,如果指定了top
、bottom
也是一个固定的值,再指定margin-top
、margin-bottom
的值为auto
,将会实现垂直方向的居中
1 |
|
补充
本文作者: CoderLeiShuo
本文链接:https://coderleishuo.github.io/lele/45942.html
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!