为了账号安全,请及时绑定邮箱和手机立即绑定

css position属性 以及 float、display的问题整合

标签:
CSS3

在css中,有两个属性可以破坏文档流:一个就是float属性,另一个就是position属性。

假设一个父级元素未定义高度(默认div的宽度是100%,即最大化;高度是最小化,即如果div没有设置高度,则其虽然占据物理空间,但是在页面上显示不出来),它的高度就要由子元素来填充,这时,如果设置子元素float属性,子元素就会脱离文档流,当所有的子元素都脱离了文档流,父级元素的高度就变为0,无法显示出来,所以父级元素最好设置高度,position:absolute也同样撑不开父级元素的高度。(任何元素通过float属性都变为块元素,与display:block一样)

position属性共有五个值:static(默认值)、relative、absolute、fixed、inherit。

static属性是默认的属性,在此属性下,设置top、left、right、bottom都是无效的。

fixed属性是相对应于浏览器窗口的,一般用于右下角的广告。

inherit属性是继承父级元素的position属性。

下面是最常用的两种position属性值:

relative:元素会相对于原始的文档流进行定位,原来的物理位置没变,只不过在网页显示上发生变化。如果不设置relative的值,则相对于原始文档流正常位置的左上方定位。

absolute:使用最多的position定位,一般与float结合使用。absolute会破坏原始文档流,类似于float。absolute会根据上一个已经定位的父级元素或者爷爷级元素(上一级不是static属性的定位)开始定位,如果没找到的话,就以浏览器定位。

一般使用relative与absolute结合的方式进行定位,比如父级元素使用relative(左右上下都不设置,也可以按需求设置),块内元素使用absolute,这样,子元素只能在父块里活动。

float、display:block和absolute区别,float和display:block只是脱离了正常文档流,但是它还在父级元素的文档流内,因此只在父级元素内活动,而absolute则脱得有点大,它是相对于上一级已经定位的元素,要看上一级元素在哪,另一点区别在于,display:block使用后,元素会根据父元素的宽度调整自己的位置,如果上一行没有自己宽度的位置就会跳到下一行。而absolute定位的块元素会产生堆叠,这个时候要给所在的块元素增加一个z-index属性,其实就是规定哪个块放在最上面显示,z-index的值越大,越靠上,不设置的话auto会根据从后到前的顺序显示最后的元素。

点击查看更多内容
3人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消