首页 > 代码库 > CSS hack
CSS hack
CSS hack主要有三种方式:①IE条件注释;②选择符前缀;③样式属性前缀。由于IE浏览器在CSS解析上存在很多问题(可以百度,一堆的CSS bug),所以一般来说CSS hack都是针对IE浏览器来说的
1、IE条件注释(微软官方推荐的hack方式)。针对不同的IE版本,引入对应的CSS文件。注意,这里引入的是一个文件,因此很容易理解这种方法会极大的增加开发和维护的成本(想象一下,IE没更新一个版本,就要重写css代码。。。),所以经常使用的是后两种hack方式。但由于这是官方推荐的,这里还是会仔细的讲述一下
基本用法如下:
1 <!--[if IE]>2 <link type="text/css" href="http://www.mamicode.com/ie.css" ref="stylesheet" /> //这里不仅使用link标签,同样可以使用style、script等标签3 <![endif]-->
扩展用法:
①指定IE版本:只在IE8下生效
<!--[if IE 8]><link type="text/css" href="http://www.mamicode.com/ie.css" ref="stylesheet" /> <![endif]-->
②针对某个版本以内的范围:使用关键字lt(小于)、lte(小于等于)、gt(大于)、gte(大于等于)、!(不等于),如下代码表示ie.css文件只在IE8及以上本生效
<!--[if gte IE 8]><link type="text/css" href="http://www.mamicode.com/ie.css" ref="stylesheet" /> <![endif]-->
2、选择符前缀:在CSS选择符前加一些只有特定浏览器才能识别的前缀,从而让某些样式只能被特定的浏览器识别
*html .test{ // ....} only for ie6*+html .test{ // ....} only for IE7@media screen and (min-width:0\0){ .test{ //....} only for IE9 IE10 }@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){ .test{ //....} for IE10+}
注意:选择符前缀不能用于内联样式。
【Note】何为内联样式?
<span class="test" style="color:red;text-algin:center;">Hello World</span>
代码中style="color:red;text-algin:center;"定义的样式即为内联样式
3、样式属性前缀
.test{ style:value; style:value\9; //for all IE style:value\0/; //for IE8-9 style/*\**/: val\9; //for IE7-8 *style:value; //for IE6-7 #style:value; //for IE6-7 +style:value; //only for IE7 _style:value; //only for IE6}
样式属性选择符可以用于内联样式。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。