020-85548809,29883069

网站建设、网站制作、微信小程序

网站建设

为您提供专业的网站建设服务

您当前的位置:首页 - 网站建设 - 内容详情

广州奇亿介绍什么是CSS Hack

   要说起前端工程师最痛恨的是什么,相信大多数人都会回答你,那就是万恶的IE浏览器。

  为何要痛恨IE浏览器?主要就是因为IE8、IE7甚至IE6在国内的占有率过高,从而使得前端工程师不得不考虑自身web应用在这些浏览器上的兼容性问题。

  而这三者浏览器性能差,不兼容HTML5和CSS3技术,大大延缓了国内网站建设领域的发展脚步。

  而为了做到兼容这些浏览器,前段人员不得不在CSS中写入了对应的CSS Hack,从而满足不同浏览器的需求。

  什么是CSS Hack?

  由于IE、Chrome、Firefox、Safari等浏览器对CSS的解析方式不同,从而使得某些效果需要不同的CSS代码才能实现。

  而通过编写不同的CSS代码用于不同的浏览器效果展现的行为,就称为CSS Hack。

  而当今的高级浏览器(IE9以上、Chrome、Firefox、Safari)的内核对CSS解析大体相同,所以不需要独特的代码去区分,主要用到CSS Hack的还是在IE的前几个版本中。

  CSS Hack如何运作?

  CSS Hack的主要原理是基于不同浏览器对于CSS代码的不同解析方式,从而采用只有该浏览器才能识别的编码形式进行编码,以达到与其他浏览器区分的目的。

  例如IE6能够识别“*”和“_”,而IE7只能识别“*”,高级浏览器两者都不能识别。

  那么我们就能通过类似 .test { background: #000; (Firefox下背景色为黑色) *background: #f00; (IE7下背景色为红色) _background: #fff; (IE6下背景色为白色) } 来对不同浏览器的背景色进行设置。

  其他CSS Hack写法?

  除了之前提到的星号和下划线之外,还有\9(选择IE6以上的浏览器),\0(选择IE8及以上浏览器),以及important(IE6无法识别)

  如果我们想要实现不同浏览器下的不同字体颜色,那么需要从高到底地进行设置,由于CSS的特性,后面的属性会对前面进行覆盖。 .font { color: #fff; (所有浏览器均能识别) color: #000\9;(IE6以上浏览器均覆盖之前的颜色) color: #f00\0;(IE8覆盖之前颜色) *color: #0f0;(IE6和IE7覆盖之前颜色) _color: #00f;(IE6覆盖之前颜色) } 所以该代码在浏览器上字体颜色分别为:IE6蓝色,IE7绿色,IE8红色,IE9及以上黑色,其他高级浏览器白色。