如果CSS3支持,请删除样式
在特定于浏览器的CSS 3项(阴影、圆角等)出现的情况下,是否可以删除样式?例如:如果CSS3支持,请删除样式,css,Css,在特定于浏览器的CSS 3项(阴影、圆角等)出现的情况下,是否可以删除样式?例如: .fancy { /* only display if no drop shadow support */ border: thin solid #888; box-shadow: 0px 1px 4px #888; -webkit-box-shadow: 0px 1px 4px #888; -moz-box-shadow: 0px 1px 4px #888; } CSS不做条件句。在任何
.fancy
{
/* only display if no drop shadow support */
border: thin solid #888;
box-shadow: 0px 1px 4px #888;
-webkit-box-shadow: 0px 1px 4px #888;
-moz-box-shadow: 0px 1px 4px #888;
}
CSS不做条件句。在任何版本中
您可以为支持CSS3的浏览器动态提供不同的样式表。最好不要删除样式规则,而只在启用CSS3时应用它们。您可以使用这段奇特的Javascript,称为 让我举一个简单的例子,说明如何在样式表中使用它:
.boxshadow .fancy {
border: thin solid #888;
box-shadow: 0px 1px 4px #888;
-webkit-box-shadow: 0px 1px 4px #888;
-moz-box-shadow: 0px 1px 4px #888;
}
Modernizr向HTML元素添加类,告诉您启用了哪些浏览器功能。因为CSS3是样式标记,而不是编程语言,所以不能执行“if-else”(如果有其他情况),但是您可以设计CSS3样式来覆盖CSS2样式,最终结果将是CSS3,而CSS2支持CSS3作为回退
然而,就实用性而言,这种方法可能比向受支持的浏览器动态提供CSS3样式表更痛苦。一种方法——尽管考虑到css采用/实现的不完整性,它可能/不会完全工作——是使用:
.fancy
{
border: thin solid #888;
}
.fancy:nth-of-type(odd), .fancy:nth-of-type(even)
{
border: 0 none transparent;
box-shadow: 0px 1px 4px #888;
-webkit-box-shadow: 0px 1px 4px #888;
-moz-box-shadow: 0px 1px 4px #888;
}
这有点混乱,因为选择器必须明确地针对所有
奇数
和偶数
元素。奇怪的是,我更喜欢整洁的解决方案,但它确实有效(当然在Chrome/Linux中)。演示:CSS没有,但是有一些语言可以编译成CSS——比如Less(lesscss.org)和Sass(Sass-lang.com)——我怀疑这两种语言都能解决这个问题,但它们是一种有趣的方法来弥补CSS的一些缺点。