避免*来自CSS样式

时间:2011-07-12 10:18:49

标签: javascript html css

我必须在具有如下样式的页面中设置其他样式的样式:

* {
width : 200px;
color : #0000;
}

它将样式应用于所有标签包括我自己的。 有没有办法避免使用星号的那些样式,并且我的所有者不会改为taht样式?

我在我的标签中设置了内联样式,但是星号仍然会改变它。

感谢。

4 个答案:

答案 0 :(得分:3)

您可以在样式中设置css标志!important以覆盖书面样式。

答案 1 :(得分:2)

使用更多specific选择器覆盖现有选择器。或者你可以把你的东西放在一个div的类中,并为div内的所有内容重置CSS。

.yourstuff * {
  /* reset your stuff here */
  Width: auto; /* etc. */
}

<div class="yourstuff">
  Your stuff
</div>

答案 2 :(得分:2)

你声明你不能通过内联标签覆盖*,但我认为你的意思是你无法通过标签属性覆盖它。这是正确的,CSS将始终覆盖旧样式标记属性。但是,如果你在一个样式属性中设置它们,它应该可以正常工作。

例如:

<html>

<head>
<style type="text/css">
* {
    width : 200px;
    color : #000000;
}
</style>
</head>

<body>

<div style="background-color: aqua" width="100%">
    This is some text </div>
<div style="background-color: yellow; width: 100%;">
    This is some text </div>

</body>

</html>

第一个DIV将限制为200px宽,因为Width属性被*样式覆盖。

第二个DIV将是屏幕的100%,因为Width样式将覆盖您的*样式。 CSS通过应用它可以找到的最具体的规则来工作。因为内联样式是您可以获得的特定样式,所以它总是获胜。

答案 3 :(得分:0)

没有

如果选择器与元素匹配,则其规则将适用。

或者:

  1. 更改选择器以使其不匹配
  2. 编写用新的规则覆盖规则的新规则集