CSS魔法堂:hasLayout原来是这样!

前言

过去一直听说旧版本ie下很多诡异bug均由一个神秘角色引起的,那就是haslayout。趁着最近突然发神经打算好好学习css,顺便解答多年来的疑惑。

hasLayout到底是何方神圣?

hasLayout可以简单看作是IE5.5/6/7中的BFC(Block Formatting Context)。也就是一个元素要么自己对自身内容进行组织和尺寸计算(即可通过width/height来设置自身的宽高),要么由其containing block来组织和尺寸计算。而IFC(即没有拥有布局)而言,则是元素无法对自身内容进行组织和尺寸计算,而是由自身内容来决定其尺寸(即仅能通过line-height设置内容行距,通过行距来支撑元素的高度;也无法通过width设置元素宽度,仅能由内容来决定而已)
当hasLayout为true时(就是所谓的”拥有布局”),相当于元素产生新BFC,元素自己对自身内容进行组织和尺寸计算;
当hasLayout为false时(就是所谓的”不拥有布局”),相当于元素不产生新BFC,元素由其所属的containing block进行组织和尺寸计算。
和产生新BFC的特性一样,hasLayout无法通过CSS属性直接设置,而是通过某些CSS属性间接开启这一特性。不同的是某些CSS属性是以不可逆方式间接开启hasLayout为true。并且默认产生新BFC的只有html元素,而默认hasLayout为true的元素就不只有html元素了。
另外我们可以通过object.currentStyle.hasLayout属性来判断元素是否开启了hasLayout特性。

到这里我们应该了解到若要理解hasLayout则必须理解BFC,因此这里可参考CSS魔法堂:重新认识Box Model、IFC、BFC和Collapsing margins

默认hasLayout==true的元素

登录后复制, , 

@@##@@,, 

以上就是CSS魔法堂:hasLayout原来是这样! 的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/3123102.html

(0)
上一篇 2025年3月29日 18:30:23
下一篇 2025年3月6日 16:27:06

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • CSS轮廓outline用法详解

    前面的话   轮廓outline处在边框边界的外面,它不像边框那样参与到文档流中,因此轮廓出现或消失时不会影响文档流,即不会导致文档的重新显示。利用轮廓,浏览器可以合并部分轮廓,创建一个连续但非矩形的形状。默认地,轮廓是一个动态样式,只有元…

    编程技术 2025年3月29日
    100
  • 关于CSS中的outline-style

      outline (轮廓)是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用。outline 属性设置元素周围的轮廓线。   要始终在 outline 属性之前声明 outline 属性。元素只有获得轮廓以后才能改变其轮廓…

    编程技术 2025年3月29日
    100
  • css3之outline属性

    在看css3相关文章时候,看到一个用css样式实现一个“+”加号效果 这里面接触到一个新的css3属性,outline,翻译成中文就是——”轮廓”; 语法:outline:outlineWidth outlineSt…

    编程技术 2025年3月29日
    100
  • CSS border-width 属性使用教程

    border-width — 定义四个边框的宽度 取值:{1,4} | inherit {1,4}: 边框宽度(可以有一个,两个,三个或四个值) inherit:border-width 初始值: medium 继承性: 否 适…

    编程技术 2025年3月29日
    100
  • css border-bottom用法详解

    border-bottom(指定下边线的样式、宽度及颜色) border-bottom: 值; border-bottom-style:值; border-bottom-color: 值; border-bottom-bottom:值; 如…

    编程技术 2025年3月29日
    100
  • CSS生成的内容技术

    介绍 该content物业是在CSS 2.1引入生成的内容添加到:before和:after伪元素。所有主流浏览器(Firefox 1.5+,Safari 3.5+,IE 8+,Opera 9.2+,Chrome 0.2+)都支持此功能。此…

    编程技术 2025年3月29日
    100
  • css中的content: "."的作用

    有一个p作为外部容器,内部的p如果设置了float样式,则外部的容器p导致不能被撑开,在应用clearfix的元素的结尾添加content中的内容,就达到了撑开容器的目的这段代码中的content: “.”;有什么用…

    编程技术 2025年3月29日
    100
  • CSS中关于list-style属性的使用详解

    -type — 定义列表样式 取值:disc | circle | square | decimal | decimal-leading-zero | lower-roman | upper-roman | lower-gree…

    编程技术 2025年3月29日
    100
  • CSS:list-style列表样式的用法详解

    解析css列表样式属性list-style 平时制作页面中可对属性list-style在list-item对象中常用,但用的都不深。一般都设为none重置整个页面就差不多OK,可能很多人包括本人对属性css列表样式更细节方面的属性并不是很了…

    编程技术 2025年3月29日
    100
  • CSS中list-style-type: none的含义是什么?

    css中list-style-type: none是什么意思?我是新手,刚开始学习div+css这语句什么意思 li标签前面默认是有样式的,就是那个点。你可以打出来看看啊。 登录后复制  有小点点的  没小点点的  这种问题百度都不用吧? …

    编程技术 2025年3月29日
    100

发表回复

登录后才能评论