我在MVC Views中覆盖了一些jQuery UI CSS类。
我想将所有样式元素移动到外部样式文件。但我不希望覆盖的CSS类适用于所有视图。
有没有办法为特定视图指定CSS类,或者任何推荐的方法来解决这个问题?
如果可能,我宁愿只保留一个css文件。
答案 0 :(得分:1)
您可以在想要覆盖其中的样式的视图正文中添加一个id。
HTML:
<body id="specialview">
...
</body>
CSS:
#specialview .class_override { ... }
答案 1 :(得分:1)
假设当你说“类”时你的意思是“规则集”:
由于你已经添加了一个要求坚持一个CSS文件(我假设你不想要一个内联<style>
元素):
使用id selector和descendent combinator为每个选择器添加前缀:#someid
然后将id添加到视图的body元素:<body id="someid">
因此:
.foo { text-decoration: overline; }
变为
#myFirstView .foo { text-decoration: overline; }
警告:这会增加每个选择器的specificity(在您的视图特定的规则集组中)。这可能会更改这些规则和通用“适用于每个页面”规则的顺序。您可以通过为所有共享规则添加前缀#generic
并添加<html id="generic" lang="en">
来避免这种情况。