Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.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
Css 在使用Modernizer时,混合使用技术(支持或反对特定功能)是一种糟糕的做法吗?_Css_Readability_Modernizr_Code Readability - Fatal编程技术网

Css 在使用Modernizer时,混合使用技术(支持或反对特定功能)是一种糟糕的做法吗?

Css 在使用Modernizer时,混合使用技术(支持或反对特定功能)是一种糟糕的做法吗?,css,readability,modernizr,code-readability,Css,Readability,Modernizr,Code Readability,我正在尝试现代化。在同一个样式表中混合“支持/反对各种功能”可以吗?如果可以,关于如何混合它们有什么一般规则吗 这是好的还是坏的做法。我只是想知道混合使用约定是否会造成混乱,如果只在必要时使用例外情况,一般来说坚持一个约定是否更好;或者以避免所有异常的方式编程是否重要 .no-borderradius .some-element { ... } .boxshadow .some-other-element { ... } 这实际

我正在尝试现代化。在同一个样式表中混合“支持/反对各种功能”可以吗?如果可以,关于如何混合它们有什么一般规则吗

这是好的还是坏的做法。我只是想知道混合使用约定是否会造成混乱,如果只在必要时使用例外情况,一般来说坚持一个约定是否更好;或者以避免所有异常的方式编程是否重要

    .no-borderradius .some-element {
    ...
    }

    .boxshadow .some-other-element {        
    ...
    }

这实际上取决于情况,即是否存在样式依赖关系

例如,如果应用了边框半径,则需要在
#框
上添加一些填充,如果浏览器不支持,则不需要添加任何填充。在这种情况下,您可以执行以下操作:

.border-radius #box {
  border-radius: 5px;
  padding: 5px;
}
(忽略缺少供应商前缀。)

但是,例如,如果你有一个细微的渐变,只会增强外观,而这并不取决于它,那么你可以:

#box {
  background: white linear-gradient(...);
}
支持它的浏览器会显示它,不支持它的浏览器只会显示降级的白色外观

另一个示例是,根据是否成功应用了长方体阴影,需要不同的边框颜色。如果支持长方体阴影,则可以设置长方体无阴影样式并覆盖它:

#box {
  border-color: gray;
}
.box-shadow #box {
  box-shadow: black 0 0 5px;
  border-color: white;
}
你可以用另一种方式,但在我看来,首先给出降级的样式,然后再增强它更合理。您可以看到,在这个示例中,不需要使用
。无框阴影
,因为我正在覆盖边框颜色。此外,如果您发现灰色边框的长方体阴影在视觉上可以接受,则可以将长方体阴影样式放在
#box
下(而不是
.box shadow#box


总之,没有必要为了“一致性”而将代码与类混在一起,您只需要考虑样式的语义。另外,如果你的样式太依赖于JavaScript生成的类,想象一下关闭JavaScript后你的页面会是什么样子。

谢谢你的全面回答,但是我只是想问,在同一样式表中混合
否-“ModernizerClass”和
ModernizerClass是否可以。我从这条评论中了解到,没有必要为了“一致”而将代码与类混在一起。
答案是肯定的?我有点激动,因为我误解了你的问题(现在我明白了)。当然可以把它们混在一起,但前提是你必须这样做。就像我说的,想想语义。