CSS的Hack大搜集

标签: css hack 搜集 | 发表时间:2013-09-04 17:00 | 作者:LiMengXiaoLong
出处:http://blog.csdn.net

  Hack在CSS的编写中是经常被用到的一种技术。之所以出现了Hack,是因为各个浏览器的解析有专属于自己的写法的。这也是CSS的神奇之处之一。不过,Hack虽然是如此的好用,作为前端写代码的我们来说,用它绝对是快准狠的解决了问题,但是不太推荐大家用Hack。

  Hack的技术是针对不同浏览器写不同的样式,让浏览器达到不同的渲染效果。实现每个浏览器不同的渲染效果,可以用条件样式,也可以用Hack。下面就是我收集的一些Hack的各种方法。

  1、Firefox

@-moz-document url-prefix() {
  .div1 {
     width:30px;
  }
}

  支持Firefox的还有几种写法:

/* 支持所有firefox版本 */
#div1[id=div1] { width:30px; }

  或

@-moz-document url-prefix() { .div { width:30px; } } 

  或

/* 支持所有Gecko内核的浏览器 (包括Firefox) */
*>.div1 { width:30px; }

  2、Webkit枘核浏览器(chrome and safari)

@media screen and (-webkit-min-device-pixel-ratio:0)	{
	div { width:30px; }
}

  上面写法主要是针对Webkit内核的浏览器,如Google Chrome 和 Safari浏览器:

@media screen and (-webkit-min-device-pixel-ratio:0)	{
	div { width:30px; }
}

  3、Opera浏览器

  Opera浏览器没有Hack,网上的那些Opera的Hack我试过了,并不起作用。好不容易对Opera起作用了,一般浏览器都起作用了。若大家有Opera的Hack欢迎分享哟。

  4、IE9浏览器

:root div {height:300px\9;}

  5、IE9以及IE9以下版本

div {height:300px\9;}

  6、IE8浏览器

div {height:300px/;}

  或

@media \0screen{
	div {height:300px;}
}

  7、IE8以及IE8以上的版本

div {height:300px\0;}

  8、IE7浏览器

*+html div{height:300px;background:red;}

  或

*:first-child+html div{height:300px;}

  9、IE7及IE7以下版本浏览器

div {*height:300px;}

  10、IE6浏览器

div {_height/**/:/**/300px;}

  或

div {_height: 300px;}

  或

*html div {height: 300px;}

  上面的内容是我收集的一些各个版本浏览器下如何识别各种的Hack写法,包括了现代浏览器还有就是很奇葩的浏览器。接下来是CSS选择器和CSS属性选择器在不同浏览器的支持情况

  1、IE6

* html div {background:red;}

  2、仅仅IE7浏览器

*:first-child+html div {background:red;}

  3、除IE6之外的所有浏览器(IE7-9, Firefox,Safari,Opera)

html>body div {background:red;}

  4、IE8-9,Firefox,Safari,Opear

html>/**/body div {background:red;}

  5、IE9+

:root div {background:red;}

  6、Firefox浏览器

@-moz-document url-prefix() {
      div {background:red;}
}

  6、Webkit内核浏览器(Safari和Google Chrome)

@media screen and (-webkit-min-device-pixel-ratio:0)	{
	div {background:red;}
}

  7、Opera浏览器

  Opera浏览器没有Hack,网上的那些Opera的Hack我试过了,并不起作用。好不容易对Opera起作用了,一般浏览器都起作用了。若大家有Opera的Hack欢迎分享哟。


  8、iPhone / mobile webkit

@media screen and (max-device-width: 480px) {
	div {background:red;}
}

  上面为大家介绍的是有关各个浏览器关于CSS的Hack的写法,基中有针对于现代浏览器Safari,Google Chrome和Firefox的写法还有前端们最讨厌的IE家族的Hack写法。下面是一些综合小技巧:


  一、方法一:

div {
	height:300px;
	background: red;/*所有现代浏览器*/
	background: green\9;/*所有IE浏览器*/
	background: lime\0;/*IE8-9浏览器 Opera*/
	*background: red;/*IE6-7浏览器*/
	+background: blue;/*IE7浏览器*/
	_background: orange;/*IE6浏览器*/
}
@media all and (min-width:0px){
	background: #000;/*Webkit和Opera浏览器*/
}
@media screen and (-webkit-min-device-pixel-ratio:0) {
	background: #f36;/*Webkit内核浏览器*/
}
@-moz-document url-prefix(){ 
	div{background:#ccc;}/* all firefox */
} 

  二、方法二:

  1、创建条件样式表,并在HTML中body里添加相应的class类名

           HTML代码:

<!--[if IE6]><body class="ie6"><<![endif]-->
<!--[if IE7]><body class="ie7"><![endif]-->
<!--[if IE8]><body class="ie8"><![endif]-->
<!--[if IE9]><body class="ie9"><![endif]-->
<!--[if !IE]><body class="non-ie"><![endif]-->

          CSS代码:

div {height:30px;background: blue;}/*现代浏览器*/
.non-ie div {background: red;}/*除IE外浏览器*/
.ie9 div {background: yellow;}/*IE9浏览器*/
.ie8 div{background: green;}/*IE8浏览器*/
.ie7 div {background: orange;}/*IE7浏览器*/
.ie6 div {background: lime;}/*IE6浏览器*/
@media all and (min-width: 0px){ 
	div {background:black;} /* webkit and opera */
}
@media screen and (-webkit-min-device-pixel-ratio:0){ 
	div{background:#369;}/* webkit */
}
@-moz-document url-prefix(){ 
	div{background:#963;}/* firefox * /
} 


  以上就是我所收集并整理的有关CSS的Hack的一些小技巧,希望能对大家有所帮助,能为大家解燃眉之急。不在万不得已的时候,大家还是不要用Hack哟。




作者:LiMengXiaoLong 发表于2013-9-4 9:00:00 原文链接
阅读:202 评论:1 查看评论

相关 [css hack 搜集] 推荐:

CSS的Hack大搜集

- - CSDN博客Web前端推荐文章
  Hack在CSS的编写中是经常被用到的一种技术. 之所以出现了Hack,是因为各个浏览器的解析有专属于自己的写法的. 不过,Hack虽然是如此的好用,作为前端写代码的我们来说,用它绝对是快准狠的解决了问题,但是不太推荐大家用Hack.   Hack的技术是针对不同浏览器写不同的样式,让浏览器达到不同的渲染效果.

前端设计中的浏览器CSS Hack汇总

- Myheimu - UED TEAM,用户体验设计,web前端开发
CSS Hack是我们解决浏览器兼容性(尤其是IE各版本)问题的常用手段. CSS Hack的手法可以说是五花八门,使用时经常混淆. js代码 /***** Selector Hacks ******/. /* IE6及更低版本浏览器 */. /* IE8, FF, Saf, Opera (除了IE 6、7的所有浏览器) */.

小tip:巧用CSS3属性作为CSS hack

- 逸川 - 张鑫旭-鑫空间-鑫生活
本文地址:http://www.zhangxinxu.com/wordpress/?p=1867. 题目:实现类似下图的宽度自适应效果,IE9+,FireFox,Chrome,Opera等使用CSS3实现,IE6~8浏览器使用图片实现. ————- 假设这是大家全神贯注思考的18分钟 ————————.

全面兼容IE6、IE7、IE8、Firefox的CSS HACK方法

- - JavaScript - Web前端 - ITeye博客
本文和大家重点讨论一下DIV+CSS=2010全面兼容IE6/IE7/IE8/Firefox的CSS HACK,这里主要有两种方法解决IE兼容性问题,请看下文详细介绍. DIV+CSS=2010全面兼容IE6/IE7/IE8/Firefox的CSSHACK. 浏览器市场的混乱,给设计师造成很大的麻烦,设计的页面兼容完这个浏览器还得兼容那个浏览器,本来IE6跟Firefox之间的兼容是很容易解决的.

【Web 开发必备】 史上最全的浏览器 CSS & JS Hack 手册

- - 博客园_首页
  浏览器渲染页面的方式各不相同,甚至同一浏览器的不同版本(“杰出代表”是 IE)也有差异. 因此,浏览器兼容成为前端开发人员的必备技能. 如果有一份浏览器 Hack 手册,那查询起来就方便多了. 这篇文章就向大家分享 Browserhacks 帮我们从网络上收集的各个浏览器特定的 CSS & JavaScript Hack,记得推荐和分享啊.

为什么 Facebook 发明新语言“Hack”

- - 开源中国社区最新新闻
为什么Facebook发明新语言“Hack”.  (注:Hack是一种PHP的派生语言). 为了替换掉那些有年头的老代码,Facebook创建了一个新的语言. 这个故事来自Facebook工程师Julien Verlaguet和Ed Smith的一次访谈. 2004年2月,扎克伯格(Mark Zuckerberg)的哈佛同学们第一次登陆Facebook,服务器里运行着PHP.

iOS客户端hack的两种姿势

- - WooYun知识库
分析某商城漏洞,在漏洞验证时采用了两种iOS上的hack工具:cycript和reveal,各有风情,均能攻城拔寨,实乃我辈日常居家、杀人越货之利刃,现与诸君共享之. 该商城的iOS版app为用户提供了找回密码的功能,用户需通过三个步骤找回密码:. 输入一个本地的图形辨识验证码(多余. 提供用户手机号,输入一个短信验证码.

豌豆实验室Hack Day活动7项作品发布

- DaoDao - cnBeta.COM
Hack Day是一项在硅谷互联网企业中常见的活动,不管是工程师还是设计师,都离开自己的日常工作岗位 (当然,在保证所有服务正常运转的前提下…),去和其它同事或者朋友们共同组建小的产品团队,在有限的时间内把自己冷藏已久的有趣想法变成现实. 一般来说,豌豆们都很忙,有做不完的新功能,改不完的 bug… 但从上周四晚上开始,所有豌豆都放下了手上的正经工作、停止了产品的发布、打乱了原有的分工、组成一个个新的小团队,开始做一些稀奇古怪,看起来和我们平常做的事情一点关系也没有的事情.

從 Github 被 hack,談 Rails 的安全性( mass-assignment )

- - Blog.XDite.net
關於 Github 被入侵這件事,目前在國外開發圈傳的沸沸揚揚. 看來中文圈還沒有消息,我來報導一下到底發生了什麼事好了. 順便宣導一下開發 Rails 程式碼需要注意的其中一個觀念... Rails 的 master 被某個 hacker 塞上這一段 commit. 以證明 Github 是可以被入侵的.

老hack送给新人:IE6 7 8 9hack写法

- - CSS库
需要注意的是hack的写法和书写顺序,如果要让IE6  7  8  9同时生效且具有不同的效果时,顺序一定不能搞反了. 至于为什么会用到数字0和9,而不用其他的数字,自己去研究吧,或许可以,或许不行. 反正是0和9木有问题,本来就是hack,何必计较太多.