Haslayout 真的会成为历史咩?

http://www.ctba.cn/blog/entry/2338

在搜索 haslayout 的触发条件时搜到 这个八卦,Markus Mielke 在针对“ Internet Explorer 8 and Acid2: A Milestone”讨论的公开邮件中回复道:“I do not think I am disclosing too much by saying that HasLayout will be history with IE8 (it was an internal data-structure to begin with and should have never been exposed).”

想想,haslayout 确实该被称作 internal data-structure,毕竟它没有一个可指定的 css 属性,必须通过设置元素的其它属性来触发他,而触发或关闭它的条件有那么零碎,实在是2。这里是 M$ 官方对于 haslayout 的 详细说明,我把触发条件单总结出来,在 IE8 尚未普及出现更好的解决办法前,haslayout 还是常用到的:

属性 激活 取消
display inline-block
(max-)width/height
auto 以外任何值 none
position absolute | fixed static
float left 或 right none
writing-mode tb-rl lr-t
overflow hidden | scroll | auto
zoom 有值就可以 normal 或为空

这么一列也就比较清楚了,像笔记中提到的 Holly Hack,就是用的 height 的激活:height: 1%,同样还有经典的 zoom: 1(但这个并不似乎推崇,有更好的选择)

ps, 在琢磨 alibaba 08 的一道在线笔试题



第一题是用三个 div 画出图上的布局,比较简单,注意 ie6 3px bug 就可以。一般来讲,我会用4个 div 描述这个布局,也就是将左侧统一包一层,这样左侧层中可以使用流式布局,不必重复考虑宽度问题,也能避免 3px bug;所以题目中强调使用三个 div 实现也算是个小地雷。

第二题如 gif 所示。难点不在这个动作上,在于,如果不是用绝对定位(position:absolute)这三个层,比如使用浮动定位,该如何实现这个效果。

你可能感兴趣的:(css,Microsoft,IE,Blog,八卦)