如何使用外部CSS覆盖内联样式?

时间:2009-01-21 15:45:32

标签: asp.net css

我正在尝试重新设计由asp.net gridview控件生成的表。我遇到的问题是gridview正在生成内联样式。如何使浏览器渲染我的CSS而不是html样式属性?

9 个答案:

答案 0 :(得分:13)

您可以在CSS文件中尝试!important

答案 1 :(得分:3)

你可以使用!important;但这并不适用于所有浏览器。

这是article on the usage of !important

答案 2 :(得分:2)

您可以尝试按照this article将“!important”附加到您的css样式定义上,或者按照Ryan Lanciaux之前的建议添加

答案 3 :(得分:2)

根据CSS规范,元素选择器具有1的特异性,类选择器具有10的特异性,ID选择器具有100的特异性,并且内联样式的特异性为1000.更高的特异性将覆盖更低的特异性,所以内联样式总是赢。但是,有一条出路。 !important 声明会覆盖所有不重要的声明。无论风格的来源是什么,它都会因!important 声明而失败。

来源:Eric A. Meyer的CSS网页设计。

答案 4 :(得分:1)

我认为您需要使用JavaScript覆盖该样式。 jQuery会让这很容易。

答案 5 :(得分:1)

您可能需要查看此内容:http://justgeeks.blogspot.com/2008/09/override-any-css-style-even-inline.html。使用!重要修饰符实现它

答案 6 :(得分:0)

你在使用主题吗?主题创建内联样式。要摆脱它们,你可以关闭gridview的主题:

<asp:GridView EnableTheming="false" ... />

答案 7 :(得分:0)

不幸的是,内联CSS始终是应用于元素的最后一种样式,因此内联样式将始终覆盖外部样式。

如果Gridview生成的样式适合您,请查看ASP.NET CSS友好控件适配器(http://www.asp.net/CssAdapters/)。这是一个很棒的项目。

答案 8 :(得分:0)

内联样式优先于外部样式。除非您使用!重要。

,否则无法覆盖