真是越学越发现自己啥都不会啊~…..关于这个haslayout是前天刚刚听咱们公司一牛人告诉我的,以前是一无所知….
在网上查阅了很多篇整理出来,下面是一些笔记,供自己与大家分享~
haslayout的重要性:
先不说这个haslayout是什么,我想让你知道haslayout的重要性。
我们经常遇到的一些IE渲染错误,都可以通过haslayout来解决。例如著名的双倍边距,3像素偏移等等。
好吧,我承认我是卖关子…..=。=
haslayout是什么:
haslayout是IE的特有属性,就是has(有)layout(布局样式)!
在IE浏览器中,有的元素是默认“has” layout(有布局样式的),而有的元素是没有layout,需要后期激发layout的。微软给出的主要原因是“性能和简洁”。如果所有的元素都默认有布局,会对性能和内存使用上产生有害的影响。
他们还认为元素都应该可以拥有一个“属性(property)”(这是面向对象编程中的一个概念),于是他们便使用了 has Layout,这种渲染特性生效时也就是将 hasLayout 设成了 true 之时。
“无layout”元素,是指 hasLayout 未被触发的元素,如一个未设定宽高尺寸的干净 div 元素就可以做为一个“无layout祖先”。
默认haslayout的元素:
<html>, <body> <table>, <tr>, <th>, <td> <img> <hr> <input>, <select>, <textarea>, <button> <iframe>, <embed>, <object>, <applet> <marquee>
CSS赋予元素layout的方式:
position: absolute
float: left/right
display: inline-block 内联元素使用
width/height:除auto以外任意值,height: 1% 就在 Holly Hack 中用到
zoom:除normal以外任意值
在IE6+中,overflow: hidden/scroll/auto和min/max 和 width/height等也可以触发haslayout
CSS hacks
1.Holly hacks
/* \*/ * html .gainlayout { height: 1%; } /* */
支持 IE5+ ,除标准兼容模式 IE6 中的内联元素。 和 overflow: hidden 不相容,除非在 IE6 的标注兼容模式下(因为这时如果父元素没有定高,那么height: 1% 会被变回 height: auto)。
2.underscore hack
.gainlayout { _height: 0; }
3.条件注释方式
<!–[if lte IE 6]>
<style>
.gainlayout { height: 1px; }
</style>
<![endif]–>
4.外链CSS方式
<link rel=”stylesheet” href=”allbrowsers.css” type=”text/css” />
<!–[if lte IE 6]>
<link rel=”stylesheet” href=”iefix.css” type=”text/css” />
<![endif]–>
haslayout小结:
当遇到IE渲染错误时可以首页试着激活haslayout来看看是不是此原因。推荐方式是设定元素zoom:1;这是IE的特有属性,而且不会影响效果。Holly hack用在IE6-版本,IE6+更适合用min-height:0;
此篇文章查阅了:
好长啊,先找个沙发坐下来看。
[回复]
smigoo 回复:
一月 7th, 2010 at 10:20
@SoleilNeon, 沙发党啊你~~
[回复]
漂亮的flash首页!
[回复]
smigoo 回复:
一月 7th, 2010 at 10:21
@Kada, 嘿嘿 是你楼上那位做的~
[回复]
满复杂的,有空试试看。都是IE造的孽啊。
[回复]
smigoo 回复:
一月 7th, 2010 at 10:21
@SoleilNeon, 是的….变态 期待IE9….是
[回复]
IE6这废品。。。赶紧淘汰。。
[回复]
smigoo 回复:
一月 7th, 2010 at 10:21
@QiQiBoY, 我们早就把他淘汰啦,就是有些人还在用呢/…
[回复]
ie6垃圾。其实同意标准不就得了,搞得累死了
[回复]
smigoo 回复:
一月 7th, 2010 at 10:22
@rusaer, ie6其实在那个年代还好啦 最关键的是现在很多人用着不是这个年代的东西….
[回复]
WEB标准才是王道
[回复]
smigoo 回复:
一月 7th, 2010 at 10:23
@苏扬, 是是….
[回复]
苏扬 回复:
一月 8th, 2010 at 03:31
@smigoo, SMI 你也太敷衍我了吧
[回复]
看了你这个我发现我什么都不会- -
[回复]
smigoo 回复:
一月 7th, 2010 at 10:24
@A.shun, ….其实我也不太懂…
[回复]
看不懂!
完了。我更加不会!
[回复]
smigoo 回复:
一月 7th, 2010 at 10:24
@超人, 嗯 这个我相信~~
[回复]
学习了,看来你的css代码不错!
[回复]
smigoo 回复:
一月 7th, 2010 at 10:24
@北街, 呵呵 还行
[回复]
学习了,看来你的css代码学的不错!
[回复]
怎么说一句我不认识你就走了啊?
[回复]
smigoo 回复:
一月 7th, 2010 at 10:24
@苏囧, 呜呜 你都不提我一句的~
[回复]
请问smiMM,这是啥东西?
[回复]
smigoo 回复:
一月 7th, 2010 at 18:01
@张三, 额 ….这个 ~…
[回复]
做下来好好学习了….
[回复]
smigoo 回复:
一月 7th, 2010 at 18:01
@hsforever, 嘿嘿~~
[回复]
把IE都淘汰掉吧。
[回复]
smigoo 回复:
一月 7th, 2010 at 18:01
@iBoluo, 我也想….=。=
[回复]
iBoluo 回复:
一月 8th, 2010 at 13:33
@smigoo,
那就 Just do it 啊。
[回复]
我还不知道这东西呢。。。呵呵
[回复]
smigoo 回复:
一月 7th, 2010 at 18:01
@Zenoven自由人, 呵呵 看看就知道啦~
[回复]
火狐用的人也不少嗯。尤其是搞技术和设计的
[回复]
smigoo 回复:
一月 7th, 2010 at 18:02
@卢松松, 是啊…可以想要兼容嘛…我自己都不想用IE了.
[回复]
望天……完全搞不懂……
[回复]
smigoo 回复:
一月 7th, 2010 at 18:02
@喵喵呜, 哈哈 陪你一起~
[回复]
最近小邪写CSS 老忘记去Clear:both 一下 ~
结果弄得自己好纠结 o(╯□╰)o
[回复]
smigoo 回复:
一月 7th, 2010 at 18:03
@evlos, 嘿嘿 是的 我以前也老是忘记clear
[回复]
SM难道你对这些乱码也有兴趣?
[回复]
smigoo 回复:
一月 7th, 2010 at 21:59
@平平, 额 我是做这个的…
[回复]
学习中!!!
[回复]
smigoo 回复:
一月 7th, 2010 at 21:59
@maomao, 哈哈 加油~
[回复]
技术类,看不懂,模糊……
[回复]
留言板 不要留言吗?呜呜~~
想跟你说下的,你的 百度快照 怎么在 2009-01-24 呢?
刚才看了下 ,很纳闷,曾经 被K过吗?
[回复]
换主题了?
[回复]
我好像没有听说过这个。
[回复]
看不懂,不过还是来学习了
[回复]
这就是术业有专攻啊。
[回复]
过来学习CSS来了。。
[回复]
有点看不懂!等待在像标准靠近的ie9
[回复]
做的都是企业网站多。。主要还是向IE靠拢。哎。中国国情啊。
杯具啊。
看完 前端观察 的文章终于消化了
上面这篇,我消化不鸟~~LOL~
[回复]