备注:在B/S系统前端开时,有很多情况下我们 这种需求。当内容 于 个值(如300px)时。容器的 度为300px; 当内容 度 于这个值时,容器 度被撑 , 不是出现滚动条。这时候我们就会 临这个兼容性问题。
浏览器兼容问题 :透明度的兼容CSS设置
IE:filter:progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=60)。
FF:opacity:0.6。
做兼容 的 法是:每写 段代码(布局中的 或者 块)我们都要在不同的浏览器中看是否兼容,当然熟练到 定的程度就没这么 烦了。建议经常会碰到兼容性问题的新 使 。很多兼容性问题都是因为浏览器对标签的默认属性解 析不同造成的,只要我们稍加设置都能轻松地解决这些兼容问题。如果我们熟悉标签的默认属性的话,就能很好的理解为 什么会出现兼容问题以及怎么去解决这些兼容问题。
1./* CSS hack*/
我很少使 hacker的,可能是个 习惯吧,我不喜欢写的代码IE不兼容,然后 hack来解决。不过hacker还是 常好 的。使 hacker我可以把浏览器分为3类:IE6 ;IE7和遨游;其他(IE8 chrome ff safari opera等)
◆IE6认识的hacker 是下划线_ 和星号 *
◆IE7 遨游认识的hacker是星号 *
如这样 个CSS设置:height:300px;*height:200px;_height:100px;
IE6浏览器在读到height:300px的时候会认为 时300px;继续往下读,他也认识*heihgt, 所以当IE6读到*height:200px的时候会覆盖掉前 条的相冲突设置,认为 度是200px。继续往下读,IE6还认识_height,所以他 会覆盖掉200px 的设 置,把 度设置为100px;
IE7和遨游也是 样的从 度300px的设置往下读。当它们读到*height200px的时候就停下了,因为它们不认识_height。 所以它们会把 度解析为200px,剩下的浏览器只认识第 个height:300px;所以他们会把 度解析为300px。因为优先级 相同且想冲突的属性设置后 个会覆盖掉前 个,所以书写的次序是很重要的。
2.条件注释
<!--[if lte IE 6]> 这段 字仅显 在 IE6及IE6以下版本。 <![endif]--> <!--[if gte IE 6]> 这段 字仅显 在 IE6及IE6以上版本。 <![endif]-->
<!--[if gt IE 6]> 这段 字仅显 在 IE6以上版本(不包含IE6)。 <![endif]--> <!--[if IE 5.5]> 这段 字仅显 在 IE5.5。 <![endif]-->
<!--在 IE6及IE6以下版本中加载css-->
<!--[if lte IE 6]> <link type="text/css" rel="stylesheet" href="css/ie6.css" mce_href="css/ie6.css" /><![endif]-->
缺点是在IE浏览器下可能会增加额外的HTTP请求数。