博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(转)hasLayout与BFC的触发条件
阅读量:5815 次
发布时间:2019-06-18

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

hasLayout与BFC是分别在IE和其他浏览器上的两个作用很相近的概念,在很多时候,我们需要触发它们去实现有些效果。例如清除浮动时需要触发hasLayout与BFC;很多自适应的两栏和三栏布局(两边固定宽度,中间自适应)需要触发hasLayout与BFC;很多奇形怪状的IE bug的解决需要触发hasLayout…至于详细的用法这里就不做详细说明了,这里说说触发hasLayout与BFC的条件:

hasLayout

Layout是 IE 的专有概念,它决定了元素如何对其内容进行定位和尺寸计算,与其他元素的关系和相互作用。HTML的元素中,有些是默认就已经触发了Layout,而有些默认没有触发。当IE的Layout被触发后,我们就说该元素“拥有布局”,使用object.currentStyle.hasLayout可获取到ture值,否则将获取到false,并且Layout的触发是不可逆的。关于Layout的更详细介绍,推荐这篇文章。hasLayout的触发条件如下:

  • display: inline-block
  • height: (除 auto 外任何值)
  • width: (除 auto 外任何值)
  • float: (left 或 right)
  • position: absolute
  • zoom: (除 normal 外任意值)
  • writing-mode: tb-rl

附1:IE7特有的触发Layout的属性

  • min-height: (任意值)
  • min-width: (任意值)
  • max-height: (除 none 外任意值)
  • max-width: (除 none 外任意值)
  • overflow: (除 visible 外任意值,仅用于块级元素)
  • overflow-x: (除 visible 外任意值,仅用于块级元素)
  • overflow-y: (除 visible 外任意值,仅用于块级元素)
  • position: fixed

附2:默认触发Layout的HTML元素

, 
,
,
,

,

BFC

BFC,块格式化上下文( Block formatting context ),是指初始化块级元素定义的环境。在CSS中,元素定义的环境有两种,一种是块格式化上下文( Block formatting context ),另一种是行内格式化上下文( Inline formatting context )。其中我们使用比较多的是块级可视化上下文,CSS3草案中将之称为“flow root”,但我们仍习惯叫BFC,其的触发条件如下:

  • 浮动元素(float除了none)
  • 绝对定位元素(absolute/fixed)
  • 设置了’display’ 属性为 “inline-block”,”table-cell”, “table-caption” 的元素
  • 设置了overflow 非 “visible”的元素

转载于:https://www.cnblogs.com/christal-11/p/5882622.html

你可能感兴趣的文章
MATLAB:图像乘除法运算(immultiply、imdivide函数),同时比较双精度类型图像运算结果...
查看>>
PyCharm的安装和应用
查看>>
Erlang顺序型编程
查看>>
Minimum Window Substring
查看>>
JDBC执行DML操作--代码+实验结果
查看>>
整数划分问题
查看>>
xutils3的使用
查看>>
setTimeout 传参
查看>>
我是怎么自学python到找到工作
查看>>
Exception from container-launch: org.apache.hadoop.util.Shell$ExitCodeException
查看>>
运行edX Devstack
查看>>
JS 10位、13位时间戳转日期
查看>>
实验四
查看>>
Hibernate HQL语句
查看>>
ios极光推送通知
查看>>
id类型 万能指针 oc
查看>>
nodejs守护进程forever
查看>>
参加研究生供需见面会有感
查看>>
CQ18阶梯赛第二场
查看>>
Ad Hoc Distributed Queries / xp_cmdshell 的启用与关闭
查看>>