CSS hack初探

1CSS hack是啥?

hack的中文意思是:(动词)乱劈、乱砍、开垦。所以最开始听到这个术语的时候,我真的不明白它的含义。
学习完课程后,我发现CSS hack其实并不深奥,一言以蔽之:就是针对不同浏览器或者浏览器的不同版本书写相应的CSS code,这个行为就叫做:CSS hack。

2. 为啥需要CSS hack?

因为浏览器有很多,而且在一定时期内,一个浏览器往往存在着多重版本,所以浏览器市场上的用户分布广泛。既然存在着不同的本体和分身,它们对于CSS的支持和解析必然不尽相同,因此一份网页在不同浏览器环境中往往呈现出不一致的页面展现效果。如果希望获得统一的页面效果,就应该要针对不同的浏览器或浏览器的不同版本书写特定的CSS样式。

3. CSS hack分类

大致有三种类型:CSS属性前缀法、选择器前缀法、IE条件注释法。我觉得,CSS hack大约是因为IE的多版本存在且有固定的用户群体,所以一直发挥着比较重要的作用。

  • 属性前缀法:IE6可以识别下划线_和星号*,IE7能识别星号*,但是不能识别下划线,IE6到IE10都认识\9,但是对于火狐浏览器而言,这些下划线、星号、反斜杠9它都不认识,因此通过对类添加这些前缀就可以在不同浏览器或者浏览器的不同版本中实现相应的效果
  • 选择器前缀法:IE6可以识别*html .class{},IE7可以识别*+html .class{}
  • IE条件注释法:首先需要注意:(敲黑板)IE10以上的浏览器已经不再支持条件注释。因为IE条件注释hack可以面对IE10以前的浏览器来处理兼容问题。大致形式为
<!--[if IE]>
内容
<![endif]-->

4. hack分类细述

  • 条件注释法
    这是IE浏览器专门独占的hack方式
    比如
只在IE6下生效
<!--[if IE6]>
在IE6中显示的文字
<![endif]-->
在IE6及以上版本生效
<!--[if gte IE6]>
在IE6及其以上版本浏览器中显示的文字
<![endif]-->

类似的还有:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 做前端多年,虽然不是经常需要hack,但是我们经常会遇到各浏览器表现不一致的情况。基于此,某些情况我们会极不情愿的...
    大女表哥阅读 1,131评论 0 9
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,805评论 1 92
  • 一、如何调试 IE 浏览器? 在IE7以上的版本中可以通过按快捷键F12调出开发人员调试框,如下图IE7以上调试工...
    dengpan阅读 564评论 0 2
  • 原文地址:常见的CSS Hack 转载请注明出处 什么是CSS hack 由于不同厂商的流览器或某浏览器的不同版本...
    xiaoxiao昱阅读 922评论 0 9
  • 变色龙、葛朗台、装在套子里的人... 中学课本里至今印象最深的三个人物,曾经用来嬉戏玩笑当绰号的人物形象,在步入社...
    爱吃甜食的考拉小姐阅读 870评论 0 7