博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
dispaly、position、float之间的关系与相互作用
阅读量:6984 次
发布时间:2019-06-27

本文共 1300 字,大约阅读时间需要 4 分钟。

接着上篇博客的内容的内容,这两篇博客的内容其实都源于同一个问题:

position和display、margin collapse、overflow、float这些特性相互叠加后会怎么样?

原文作者jackWHJ将这个问题分为了两部分来讨论,第一部分内容就是本篇博客引用的内容,第二部分就是上篇博客中几种情景下margin collapse的问题。

进入正题。

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

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

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值为指定值或默认值。

最后

贴出原文地址,感谢前人栽阴!

转载于:https://www.cnblogs.com/adventureofraindrop/p/6215411.html

你可能感兴趣的文章
程序员看中的浏览器
查看>>
浙大pat甲级题目---1021. Deepest Root (25)
查看>>
CCRD_TOC_2008年第2期
查看>>
脊柱关节病外周关节滑膜高表达的RANK/RANKL/OPG系统与炎症呈部分分离
查看>>
vue Cli 脚手架的搭建
查看>>
springboot配置Filter的两种方法
查看>>
substringToIndex substringFromIndex
查看>>
开源方案搭建可离线的精美矢量切片地图服务-1.开篇(附成果演示地址)
查看>>
UVA 1613 K-Graph Oddity K度图着色 (构造)
查看>>
Docker版本(三)
查看>>
汇编小知识
查看>>
eclipse使用git提交本地项目,提交至远程github上
查看>>
out对象的使用
查看>>
python3随记——字符编码
查看>>
第八章教材内容总结:异常控制流
查看>>
静态化
查看>>
我对CopyOnWrite的思考
查看>>
架构师修练 I - 超级代码控
查看>>
eclipse总是自动跳到ThreadPoolExecutor解决办法
查看>>
zabbix3.0.4添加对指定进程的监控
查看>>