检查代码后面的样式表文件中是否存在css类

时间:2009-10-19 01:09:01

标签: asp.net css code-behind

我使用常用​​的实用程序方法控制一组页面的样式。我想做的是检查.css文件以查看是否存在css类;如果它然后选择它,否则选择默认值。

说PageA.aspx和PageB.aspx都使用包含.default {...}的styles.css 如果我希望PageA.aspx的样式不同,我只需在styles.css .PageA {....}等中添加另一个条目。在运行时,它将搜索名为PageB的css类,因为它找不到它,它将默认为默认类。

问题是如何检查.css文件以查明代码隐藏中是否存在特定的css类。

谢谢

4 个答案:

答案 0 :(得分:1)

简单的方法是应用默认样式,然后应用pageA样式。如果pageA声明不存在,浏览器应该忽略它  但是我认为Right Thing™将在ASP中处理这个问题,或者像Seb建议的那样使用单独的文件。

答案 1 :(得分:0)

SO中的许多问题都要求特定的解决方案,但没有说明背后的真正问题,因此很难正确回答。

但是我怀疑通过在3个不同的文件中分割样式并包括您需要的内容,可以更轻松地实现您的要求:

  • styles.css:PageA和PageB的常见样式
  • styleA.css:仅适用于PageA的规则
  • styleB.css:仅适用于PabeB的规则,但在styleA.css中使用的名称相同

然后,你包括styleA.css或styleB.css,具体取决于你正在显示的页面,就是它。

如果这不能解答您的问题,那么您可能会发布您的真正的问题而不是您尝试编码的解决方案 - 这可能不是最佳解决方案。

BTW:我认为没有办法知道定义了哪些CSS类;你只是设置和取消它们。

答案 2 :(得分:0)

您可以使用StreamReader加载css文件(因为它是一个文本文件)并使用String.IndexOf()方法逐行搜索,但这对于每页加载。

答案 3 :(得分:0)

你的问题没有多大意义,但由于CSS不是一种编程语言,如果你想知道另一个文件中的内容,你将不得不在别的地方做。