Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果CSS3支持,请删除样式_Css - Fatal编程技术网

如果CSS3支持,请删除样式

如果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不做条件句。在任何

在特定于浏览器的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不做条件句。在任何版本中


您可以为支持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的一些缺点。