简单介绍CSS hack的使用

所属分类: 网页制作 / CSS 阅读数: 1765
收藏 0 赞 0 分享

css hack 是个很有争议的东西,一开始我也很讨厌,因为我觉得可以饶过 css hack,通过另外的方法解决问题。但是,随着工作中的不断实践,改变了我的观点,css hack 虽然不能通过 w3c 标准认证,但适当是使用很有可能会使你的 HTML 结构更紧凑、有效的减少无语义标签或带来其他好处。

1.IE条件注释法
该方法安全性好,但是不利于开发维护。比如涉及到针对不同版本IE的css。

<!--[if IE]><![endif]-->         只在IE下有效
<!--[if IE 6]><![endif]-->      只在IE6有效
<!--[if gt IE 6]><![endif]-->  只在IE6以上版本有效

注意:结合lte、lt、gte、gt、!关键字使用。

2.选择符前缀法

“*html” 前缀只对IE6生效  "*+html"前缀只对IE7生效

CSS Code复制内容到剪贴板
  1. .test{width:80px;}           /*IE 6 7 8*/  
  2. *html .test{width:70px;}  /*IE6*/  
  3. *+html .test{width:60px;}/*IE7*/  

缺点:不能保证IE9,10不识别*html,*+html,有向后兼容风险。

3.样式属性前缀法:

如“_”只在IE6下生效,“*”在IE6和IE7下生效。同样有向后兼容隐患。
.test{width:80px;*width:70px;_width:60px;}

可用于内联样式

CSS Code复制内容到剪贴板
  1. :<div style="width:80px;*width:70px;_width:60px;"></div>   

由于IE条件注释法不利于开发维护,实际中常用的hack方法常常是后两者。

小例子

html 代码

XML/HTML Code复制内容到剪贴板
  1. <body>  
  2.  <p>您的浏览器是</p>  
  3. </body>  

css hack 代码

CSS Code复制内容到剪贴板
  1. p { margin:0; padding:0 55px 0 0; height:30xp; line-height:30pxfont-size:14px;}   
  2. p { background:url(llq.gif) 90px -170px no-repeat;} /* all */  
  3. p,x:-moz-any-link { background:url(llq.gif) 90px -80px no-repeat;} /* for ff */  
  4. p,x:-moz-any-link,x:default { background:url(llq.gif) 90px -140px no-repeat;} /* for ff2+ */  
  5. p {[;background:url(llq.gif) 90px -260px no-repeat;]}  /* for sa/ch */  
  6. p { background:url(llq.gif) 90px -50px no-repeat\9;}  /* for ie */  
  7. *+html p { background:url(llq.gif) 90px -20px no-repeat;} /* only for ie7 */  
  8. p { _background:url(llq.gif) 90px 10px no-repeat;} /* only for ie6 */  


查看Demo

因为没有找到 op10 的 css hack,所以标准的写法是给 op10 的,然后针对其他浏览器写 css hack。

另外,在修复过程中,我发现了网上流传的一个 css hack 有问题,这个 css hack 也许有很多人在用,就是[属性:值\0],有的人说这是 ie8 专用的,但我在测试过程中发现这个 css hack 除了 ie8 识别外,ff3 和 op10 也能识别(ff2 和 ff3.5 不能识别)。

更多精彩内容其他人还在看

2013年五大主流浏览器 HTML5 与 CSS3 兼容性大比拼

这篇文章主要介绍了2013年五大主流浏览器 HTML5 和 CSS3 兼容性大比拼,需要的朋友可以参考下
收藏 0 赞 0 分享

前端设计师需要了解的9个问题

这篇文章主要介绍了前端设计师需要了解的9个问题以及注意事项,非常的实用,是篇非常不错的文章,这里推荐给大家
收藏 0 赞 0 分享

CSS强制性换行的方法区别详解

自动换行问题,正常字符的换行是比较合理的,而连续的数字和英文字符常常将容器撑大,挺让人头疼,下面介绍的是CSS如何实现换行的方法对于div,p等块级元素正常文字的换行(亚洲文字和非亚洲文字)元素拥有默认的white-space:normal,当定义的宽度之后自动换行
收藏 0 赞 0 分享

CSS语义化命名方式及常用命名规则

本文搜集了一些CSS语义化命名方式以及命名规则。如有错误或不妥之处,敬请指出,欢迎你提出更好的建议,加插更多的命名规范。
收藏 0 赞 0 分享

ul li内容宽度的问题的解决方案

在IE6下只要我设置LI的宽度为auto,不论LI里面的内容多长,LI的宽度始终是100%,即UL的宽度(这里我已经写死了UL的宽度)。设置max-width也没用。高手们,在IE系列浏览器中如何使LI的宽度真正的随着内容增长而增长呢?像FF那样。
收藏 0 赞 0 分享

html5+css3气泡组件的实现

本文是html5+css3系列教程的第一篇,给大家讲述html5+css3实现气泡组件,讲解的十分的详细,这里推荐给大家,希望对大家能有所帮助
收藏 0 赞 0 分享

html5+css3之CSS中的布局与Header的实现

本文从CSS3的布局(CSS的布局的演化、CSS3盒模型-box-sizing、float布局中的bfc、Flexbox简介)Header布局的实现(float实现布局、Header js的实现)向我们展示了HTML5与CSS3的魅力。
收藏 0 赞 0 分享

一款恶搞头像特效的制作过程 利用css3和jquery

今天给大家介绍一款恶搞头像特效的制作过程,你可以把任意一张照片放到跳舞的漫画中,为他带上不同的帽子,让他翩翩起舞,下面我们一起来看一下制作过程和效果
收藏 0 赞 0 分享

大图片根据分辨率自适应宽度仍居中显示

一个1920*900的大图,在1024*768的分辨率下仍居中显示,如何做到这一点,下面是一个可行的解决方案
收藏 0 赞 0 分享

CSS3提交意见输入框样式代码

这个提交意见输入框,结构使用到了table,样式用的css3,包含了多方面的知识,比较适合新手朋友们
收藏 0 赞 0 分享
查看更多