本文主要包含css hack,css hack是什么意思,css hack技巧,什么是css hack,常用的csshack技巧等相关知识,佚名 希望在学习及工作中可以帮助到您
虽然如此,但是,很少有人知道,它到底是什么东西,使用CSS hack好不好,以及它是怎样实现的?
下面,就谈一下我对CSS hack的认识。希望能帮助大家正确的认识CSS hack。
介绍之前,请先记住一句话:你今天用CSS hack解决兼容性问题,明天浏览器就可能让你那解决问题的CSS hack变成另一个兼容性问题。
CSS hack简介
这,还要从W3C CSS2.1的标准说起。
W3C CSS2.1的标准的第四章,讲了CSS的基本语法,数据,以及值,还讲到了如何去处理不合理的值及声明等。可以参考我分享的另外两个帖子:【分享】说说标准 --CSS标准中的值,【分享】说说标准--我 的眼里只有你--CSS的错误解析规则。
W3C CSS2.1 标准也规定了浏览器应当支持的特性属性或值。
虽然如此,W3C也不可能强制浏览器厂商必须遵循标准。因此就出现了各大厂商对标准的实现不尽相同的现象。由于不同的浏览器,比如IE6、 IE7、 IE8、 Firefox等,对CSS解析的标准不同,因此对于相同的 CSS代码,可能会生成不同的页面效果,从而无法在所有浏览器中得到我们想要的效果。这时,我们就需要针对不同的浏览器去写不同的CSS代码,让它能够在所有浏览器中获得相同的效果。这个过程,就是CSS hack。也就是写出只有个别浏览器或某些浏览器识别的CSS代码。
CSS hack是因为现有浏览器对标准的解析不同,为了兼容各浏览器,所采用的一种补救方法。
CSS hack是一种类似作弊的手段,以欺骗浏览器的方式达到兼容的目的,是用浏览器的兼容性差异来解决浏览器的兼容性问题。
因此,在设计之初,写CSS hack需要遵循以下三条原则:
⃟有效: 能够通过 Web 标准的验证
⃟只针对太古老的/不再开发的/已被抛弃的浏览器, 而不是目前的主流浏览器
⃟代码要丑陋。让人记住这是一个不得已而为之的 Hack, 时刻记住要想办法去掉它。
现在很多hacks已经抛弃了最初的原则,而滥用hack会导致浏览器更新之后产生更多的兼容性问题。
因此,并不推荐使用CSS hack来解决兼容性问题。
CSS hack的实现方式
我总结了一下,实现CSS hack大概有以下几种方式:
1. 利用浏览器对相同代码的解析和支持的不同实现的hack
不同浏览器对相同的CSS代码的支持情况可能不同。尤其是对错误的写法。
例如,
CSS code
这个是在越出长度后会自行的截掉多出部分的文字,并以省略号结尾,很好的一个技术。只是目前Firefox并不支持。 </div>
下面,就谈一下我对CSS hack的认识。希望能帮助大家正确的认识CSS hack。
介绍之前,请先记住一句话:你今天用CSS hack解决兼容性问题,明天浏览器就可能让你那解决问题的CSS hack变成另一个兼容性问题。
CSS hack简介
这,还要从W3C CSS2.1的标准说起。
W3C CSS2.1的标准的第四章,讲了CSS的基本语法,数据,以及值,还讲到了如何去处理不合理的值及声明等。可以参考我分享的另外两个帖子:【分享】说说标准 --CSS标准中的值,【分享】说说标准--我 的眼里只有你--CSS的错误解析规则。
W3C CSS2.1 标准也规定了浏览器应当支持的特性属性或值。
虽然如此,W3C也不可能强制浏览器厂商必须遵循标准。因此就出现了各大厂商对标准的实现不尽相同的现象。由于不同的浏览器,比如IE6、 IE7、 IE8、 Firefox等,对CSS解析的标准不同,因此对于相同的 CSS代码,可能会生成不同的页面效果,从而无法在所有浏览器中得到我们想要的效果。这时,我们就需要针对不同的浏览器去写不同的CSS代码,让它能够在所有浏览器中获得相同的效果。这个过程,就是CSS hack。也就是写出只有个别浏览器或某些浏览器识别的CSS代码。
CSS hack是因为现有浏览器对标准的解析不同,为了兼容各浏览器,所采用的一种补救方法。
CSS hack是一种类似作弊的手段,以欺骗浏览器的方式达到兼容的目的,是用浏览器的兼容性差异来解决浏览器的兼容性问题。
因此,在设计之初,写CSS hack需要遵循以下三条原则:
⃟有效: 能够通过 Web 标准的验证
⃟只针对太古老的/不再开发的/已被抛弃的浏览器, 而不是目前的主流浏览器
⃟代码要丑陋。让人记住这是一个不得已而为之的 Hack, 时刻记住要想办法去掉它。
现在很多hacks已经抛弃了最初的原则,而滥用hack会导致浏览器更新之后产生更多的兼容性问题。
因此,并不推荐使用CSS hack来解决兼容性问题。
CSS hack的实现方式
我总结了一下,实现CSS hack大概有以下几种方式:
1. 利用浏览器对相同代码的解析和支持的不同实现的hack
不同浏览器对相同的CSS代码的支持情况可能不同。尤其是对错误的写法。
例如,
CSS code
这个是在越出长度后会自行的截掉多出部分的文字,并以省略号结尾,很好的一个技术。只是目前Firefox并不支持。 </div>