【CSS】display、position、float 三者的优先级

1. display 的值是 none

如果 display 的值是 none,则 position 和 float 无效。否则,继续进行2。

2. position 的值是 absolute 或 fixed

如果 position 的值是 absolute 或 fixed,则浮动失效,并且 display 的值 按照 对应表 设置。否则,继续进行3。

此时,元素的位置将由 ‘top’,’right’,’bottom’ 和 ‘left’ 属性和该框的包含块确定。

3. float 的值不是 none

如果 float 的值不是 none,则元素浮动,并且 display 的值 按照 对应表 设置。否则,继续进行4。

4. 元素是根元素

如果元素是根元素,display 的值 按照 对应表 设置。否则,继续进行5。

5. 应用指定的 display 特性值

display的转换对应表

设定值计算值
inline-tabletable
inline, run-in, table-row-group, table-column, table-column-group,table-header-group, table-footer-group, table-row, table-cell,table-caption, inline-blockblock
其他 同设定值

position:absolute 和 float 会隐式的改变 display 的类型

不论之前是什么类型的元素(display:none 除外),只要设置了 position:absolute 或 float,都会让元素以 display:inline-block 的方式显示,可以设置长宽,默认宽度并不会占满父元素,就算是显示的设置 display:inline 或 display:block,仍然无效。 

float 在 IE6 下的 双倍边距bug 就是利用添加 display:inline 来解决的。 

position:relative 并不能够隐式的改变 display 的类型。

参考:

https://blog.csdn.net/github_34514750/article/details/51895897

https://blog.csdn.net/qq_41720311/article/details/83929291

https://www.iteye.com/blog/zccst-2193102

END

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值