失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > css float 清除浮动 haslayout

css float 清除浮动 haslayout

时间:2022-02-17 00:59:06

相关推荐

css float 清除浮动 haslayout

web前端|css教程

wangxiaohu,haslayout,float

web前端-css教程

1:float使得指定元素脱离普通的文档流而产生的特别的布局特性。它必需应用在块级元素之上,也就是说浮动并不应用于内联标签。当应用了float那么这个元素将被指定为块级元素。例如一个内联元素设定了float之后就可以给它设定宽高。

微商发货系统源码,vscode浏览器版本,ubuntu文件死机,查看tomcat磁盘使用,北京有毒爬虫,单引号 数据库 php,江苏网站seo哪里好,婚庆网站建设方案,开源后台管理模板lzw

.clear:after{content:" ";display:block;height:0;clear:both;visibility:hidden;}

:after 伪元素在元素之后添加内容,这个伪元素允许创作人员在元素内容的最后面插入生成内容。默认地,这个伪元素是行内元素,不过可以使用属性 display 改变这一点。用after产生的内容是个空格,先display:block,然后高度为0,不让他影响布局,隐藏和height:0差不多就是不要影响布局。clear:both就是清除 浮动.不支持after的浏览器ie6、ie7就是加一个height:1%;就ok了,这样的话ie6,ie7就会拥有haslayout。

.net源码,c语言和vscode区别,ubuntu查看cache,tomcat默认80端口,臭爬虫种类,北京 php兄弟连,芜湖seo网络推广公司平台,网站弄了个移动端模板,App线下运营方案模板lzw

2:haslayput

钢材网站源码下载,vscode换行不缩进,ubuntu 完整安装,tomcat如何安装啊!,sqlite数据库管理器,多肉上有黑色的小爬虫怎么办,php 7 xhprof,抖音seo软件厂家,带后台的手机网站源码,css 网页模板lzw

其实haslayout 是Windows Internet Explorer7以下渲染引擎的一个内部组成部分,

在InternetExplorer7以下中,一个元素要么自己对自身的内容进行计算大小和组织,要 么依赖于父元素来计算尺寸和组织内容。为了调节这两个不同的概念,渲染引擎采用了 hasLayout 的属性,属性值可以为true或false。当一个元素的 hasLayout属性值为true时,我们说这个元素有一个布局(layout)。当一个元素有一个布局时,它负责对自己和可能的子孙元素进行尺寸计算 和定位。简单来说,而不是依赖于祖先元素来完成这些工作。通过 IE Developer Toolbar 可以查看 IE

下 HTML元素是否拥有haslayout,拥有 haslayout的元素,通常显示为“haslayout = -1”。

这里的has layout就是对自己和可能的子孙元素进行尺寸计算和定位来决定父元素的高度,也就是父元素适应了里面内容的高度,这回大家就明白为什么加入一个 height:1%的原因了,当然也可以加入其它的属性使其has layout,如width等。当然加float也可以(float也可以触发layout),但不推荐,不要用floa来清除浮动,这样float又会 产生一个浮动。

,,

,

,, , ,

下列 CSS 属性和取值将会让一个元素获得 layout:

position: absolute

绝对定位元素的包含区块(containing block)就会经常在这一方面出问题。

float: left|right

由于 layout 元素的特性,浮动模型会有很多怪异的表现。

display: inline-block

当一个内联级别的元素需要 layout 的时候往往就要用到它,这也可能也是这个 CSS 属性的唯一效果–让某个元素拥有 layout。”inline-block行为”在IE中是可以实现的,但是非常与众不同: IE/Win: inline-block and hasLayout 。

width: 除 “auto” 外的任意值

很多人遇到 layout 相关问题发生时,一般都会先尝试用这个来修复。

height: 除 “auto” 外的任意值

height: 1% 就在 Holly Hack 中用到。

zoom: 除 “normal” 外的任意值

IE专有属性。不过 zoom: 1 可以临时用做调试。

writing-mode: tb-rl

MS专有属性。

overflow: hidden|scroll|auto

在 IE7 中,overflow 也变成了一个 layout 触发器,这个属性在之前版本 IE 中没有触发 layout 的功能。

overflow-x|-y: hidden|scroll|auto

overflow-x 和 overflow-y 是 CSS3 盒模型中的属性,尚未得到浏览器的广泛支持。他们在之前版本IE中没有触发 layout 的功能。

另外 IE7 的荧幕上又新添了几个 haslayout 的演员,如果只从 hasLayout 这个方面考虑,min/max 和 width/height 的表现类似,position 的 fixed 和 absolute 也是一模一样。

position: fixed

min-width: 任意值

就算设为0也可以让该元素获得 layout。

max-width: 除 “none” 之外的任意值

min-height: 任意值

即使设为0也可以让该元素的 haslayout=true

max-height: 除 “none” 之外的任意值

有关内联级别元素

对于内联元素(可以是默认即为内联的比如 span 元素,也可以是 display: inline 的元素)

width 和 height 只在 IE5.x 下和 IE6 或更新版本的 quirks 模式下触发 hasLayout 。而对于 IE6,如果浏览器运行于标准兼容模式下,内联元素会忽略 width 或 height 属性,所以设置 width 或 height 不能在此种情况下令该元素具有 layout。

zoom 总是可以触发 hasLayout,但是在 IE5.0 中不支持。

具有”layout” 的元素如果同时也 display: inline ,那么它的行为就和标准中所说的 inline-block 很类似了:在段落中和普通文字一样在水平方向和连续排列,受 vertical-align 影响,并且大小可以根据内容自适应调整。这也可以解释为什么单单在 IE/Win 中内联元素可以包含块级元素而少出问题,因为在别的浏览器中 display: inline 就是内联,不像 IE/Win 一旦内联元素拥有 layout 还会变成 inline-block。

重置 hasLayout

在另一条规则中重设以下属性为默认值将重置(或撤销)hasLayout,如果没有其他属性再添加 hasLayout 的话:

width, height (设为 “auto”)

max-width, max-height (设为 “none”)(在 IE 7 中)

position (设为 “static”)

float (设为 “none”)

overflow (设为 “visible”) (在 IE 7 中)

zoom (设为 “normal”)

writing-mode (从 “tb-rl” 设为 “lr-t)

display 属性的不同:当用”inline-block”设置了 haslayout = true 时,就算在一条独立的规则中覆盖这个属性为”block”或”inline”,haslayout 这个标志位也不会被重置为 false。

把 mid-width, mid-height 设为它们的默认值”0″仍然会赋予 hasLayout,但是 IE 7 却可以接受一个不合法的属性”auto”来重置 hasLayout。

如果觉得《css float 清除浮动 haslayout》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。