CSS dispaly、position、float之间的关系与相互作用

一、首先看一下这三个属性

display属性规定元素生成框的类型。较为常见的有none-缺省值(用于隐藏元素,元素会消失于视界和文档流中),block-块级元素,inline-block-行内块级元素,list-item列表样式块级元素……….(display种类很多,可查阅资料http://www.w3school.com.cn/cssref/pr_class_display.asp

position属性规定元素的定位类型,常用于布局。static-默认值,元素出现在正常文档流中(此时不受top、left、right、bottom、z-index等属性影响);absolute-绝对定位,脱离文档流,相对于它第一个非static父元素进行定;fixed-固定定位,相对于浏览器窗口进行定位;relative生成相对定位的元素,相对于其正常文档流中的位置进行定位。

float属性,定义一个元素浮动方向,最初用于图像使文本环绕,现在是一种布局方式。不论浮动元素本身是何种框类型,浮动后会生成一个块级框。

二、三种属性的相互作用关系

这三种属性之间的关系和相互作用效果可以用下图表示:

display转换对应表:

设定值 转换后
inline-table table
inline, inline-block,run-in,table-row-group,table-column,table-column-group,table-header-group,table-footer-group,table-row,table-cell,table-caption block
其他 保持设定值

下面分情况讨论:

1.display值为none

当元素display值为none时,元素不产生框,float和position都不起作用。

2.position是absolute或fixed

当元素display值不为none,而position是absolute或者fixed时,此时float不起作用,计算值也为none(原文中有计算方法,这里略去),display值会按上表设置。元素框的位置由top、left、right、bottom值和其父元素决定。

3.float值不为none

当元素有了浮动属性(float不为none,是left或right)后,该框浮动且display值会按上表转换。例如,span是行内元素,设置浮动后会变为块级元素。

4.元素为根元素

如果元素是根元素,设置的display也会按上表进行转换。否则,元素的display值为指定值或默认值。

最后

贴出原文地址http://www.cnblogs.com/jackyWHJ/p/3756087.html,感谢前人栽阴!

猜你喜欢

转载自blog.csdn.net/weixin_41796631/article/details/89453234