扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
创新互联建站长期为超过千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为奇台企业提供专业的做网站、成都网站设计,奇台网站改版等技术服务。拥有十余年丰富建站经验和众多成功案例,为您定制开发。
background:#ccc;/*IE6 FF safari opera以上会被解析 */ _background:#f00;/*IE6才会被解析*/hack 写法 *background:#f00/*IE6才会被解析*/hack 写法 网上应该有比较全的 你可以去查阅一下
CSS Hack大致有3种表现形式,CSS属性前缀法、选择器前缀法以及IE条件注释法(即HTML头部引用if IE)Hack,实际项目中CSS Hack大部分是针对IE浏览器不同版本之间的表现差异而引入的。属性前缀法(即类内部Hack):例如 IE6能识别下划线"_"和星号" * ",IE7能识别星号" * ",但不能识别下划线"_",IE6~IE10都认识"\9",但firefox前述三个都不能认识。选择器前缀法(即选择器Hack):例如 IE6能识别*html .classIE浏览器显示的内容 ,针对IE6及以下版本: 只在IE6-显示的内容 。这类Hack不仅对CSS生效,对写在判断语句里面的所有代码都会生效。具体不展开,可看资料搜索“史上最全的CSS hack方式一览”
楼主说到的方法一:
/* ie6 \*/
* html { 我找到的方法之一;这里加上 \,有什么好处?}
/* end */
一般\不是你那个位置加的 ,不过我可以解释一下在那里加的好处:
本来/**/是构成注释块的,就是里面的内容全部不执行。但ie6,以及windows ie6以下的浏览器不叫“聪明”,它解析到\*/ 的时候,就以为解析完了,因此执行中间的的内容,所以,中间的*html{} 代码被执行。
但你这种用法比较作用比大,以为*html已经起到选择ie6浏览器的左右了。其实"\"我们比较用的多是这样的。
\.element{} 或者
.e\lement{} 或者
.element{wi\th:123px;}
这三个例子都系应用ie6不识别\而运动代码。下面给一个应用例子说明一下:
.element{width:123px;} /*element的宽为123px,这个ie6 ie7 ff上面都表现为123px*/
\.element{width:100px;} /*ie7 ff识别\知道它是没用的符号,不赋予执行,而ie6当\没出现,因此宽为100px,*/
通过这个例子,我们就可以筛选出ie6了。.e\lement和.element{wi\th:123px;}的应用同理。
不过建议不要使用\来筛选ie6,因为在系统里面\n \r 这些都是有特别的意思的,呵呵,这里就不详细说明了,为了不出现不必要的麻烦,还是用著名的hack —— starHTML来筛选ie6吧。
starHTML就是我们经常用的*html{}了。
对于楼主提及的方法二:
* html { 这就是IE6专用的?}
其实也可以说*html是ie6专用。因为ie7已经修复了这个hack了。至于为什么一定是*html而不是¥HTML @html 或者系其他呢?就要问微软的设计师为什么才知道了。不过可以说说css的hack的原理吧。
CSS Hack的原理是由于不同的浏览器对CSS的支持及解析结果不一样,还由于CSS中的优先级的关系。我们就可以根据这个来针对不同的浏览器来写不同的CSS。
举一个例子吧,希望通过这个例子,你可以感觉到*html这个hack的原理吧。
*+html{}是ie7的专属筛选hack。为什么中间有个+号呢,
因为+是相邻选择符,相邻选择符ie6不支持,不过ie7支持,因此,就可以筛选出应用于ie7的语句了。
关于css hack,实在涉及的东西比较广,如果你有兴趣,可以联系一下我。我怕我说了一堆话,看了也糊涂了,呵呵。希望对你有帮助啦。
这句话的意思就是说低于或者等于IE6时,后面的这段代码才有效.如果不满足就会被忽略! 这组特定的格式的"条件注释"只有IE才认识,其他浏览器会忽略,比如火狐,还当做普通的注释直接忽略掉!因此这段代码对于IE和火狐等就像不存在一样! 给你个完整的例子吧: Artech Store Books DVDs Movies Service
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流