大家好,欢迎来到IT知识分享网。
css绝对定位和居中
今天做练手项目的时候,想居中一个div,但是就查了下资料,对absolute定位的了解又多了一些。
一下是一些个人的理解:
- 当某个block设置为绝对定位时,如果设置他的top,left,right,bottom都为0,并且没有个它设置宽高时,浏览器会自己为这个block绘制填充满父级relative或absolute定位容器。代码并解释如下:
<!--html代码-->
<div id="outdiv">
<div id="insidediv"></div>
</div>
/*css代码*/
#outdiv{ position:relative; height:600px; width:1000px; border:1px solid green; }
#insidediv{ position:absolute; top: 0;left: 0;right: 0;bottom: 0; border:1px solid red; }
上述代码可以看到,内层的div并没有给它设置任何的宽和高,但它并不像其他没有设置宽和高的block一样,大小为0.而是和父级定位的容器一样大。
2.当某个block的position为absolute,若给定上下,或者左右的位置,浏览器便会为其重新绘制填充满父级高或者宽。代码如下:
<!--html代码-->
<div id="outdiv">
<div id="insidediv"></div>
</div>
/*css代码*/
#outdiv{ position:relative; height:600px; width:1000px; border:1px solid green; }
#insidediv{ position:absolute; top: 0;bottom: 0; border:1px solid red; }
执行上述代码,会看到绿色边框的容器内,填充了一条垂直的直线,当给定左右的值时,同理会出现一条水平的直线(其实是两条重合了)。
3.当block的position为absolute时,若给定4个位置任意一个值,在额不能确定什么东西,在浏览器中的表现便是什么都没有。
总结一下,当block的position为absolute时,如果给定对立的两个位置的值,浏览器便会使该block填充满该block所在的父级容器,便能确定该block在这个方向上的大小。
居中定位:
利用上述block块性质,加上固定的block宽、高,便能很方便的实现block居中。代码如下:
<div id="outdiv">
<div id="insidediv"></div>
</div>
#outdiv{ width: 1000px; height: 600px; border: 1px solid red; position: absolute; }
#insidediv{ width: 600px; height: 400px; position: absolute; top: 0;left: 0;right: 0;bottom: 0; margin: auto; border: 1px solid green; }
上述实现原理:利用绝对定位(position:absulote)和四周的位置为0来填充满父级定位的容器。对于宽度和高度不够的,利用margin来补充。
上述代码中,固定了一个父级div,子div中,设置了position为absolute,并且设置了固定的width和width,此时子div的大小是小于父div。并且子div中top、left,right,bottom的值都为0,则是让子div去填充满父div,但是子div的height和width是不够的,所以如果加上margin的话,子div便能完成填充满父div的条件了。再给margin设置为auto,均匀分配,便实现了居中。同理还可以实现水平居中或者垂直居中。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/21840.html