是否可以为特定的MVC视图指定CSS类?

时间:2012-08-21 14:28:27

标签: css asp.net-mvc jquery-ui

我在MVC Views中覆盖了一些jQuery UI CSS类。

我想将所有样式元素移动到外部样式文件。但我不希望覆盖的CSS类适用于所有视图。

有没有办法为特定视图指定CSS类,或者任何推荐的方法来解决这个问题?

如果可能,我宁愿只保留一个css文件。

2 个答案:

答案 0 :(得分:1)

您可以在想要覆盖其中的样式的视图正文中添加一个id。

HTML:

<body id="specialview">
  ...
</body>

CSS:

#specialview .class_override { ... }

答案 1 :(得分:1)

假设当你说“类”时你的意思是“规则集”:

由于你已经添加了一个要求坚持一个CSS文件(我假设你不想要一个内联<style>元素):

使用id selectordescendent combinator为每个选择器添加前缀:#someid

然后将id添加到视图的body元素:<body id="someid">

因此:

.foo { text-decoration: overline; }

变为

#myFirstView .foo { text-decoration: overline; }

警告:这会增加每个选择器的specificity(在您的视图特定的规则集组中)。这可能会更改这些规则和通用“适用于每个页面”规则的顺序。您可以通过为所有共享规则添加前缀#generic并添加<html id="generic" lang="en">来避免这种情况。