有没有办法忽略父标签中写的样式?

时间:2011-06-07 15:08:47

标签: html css

有没有办法忽略所写的任何样式,并从头开始为新标签。例如,如果我写了一个样式

table {
  large amount of styles..
}

然后我想开始一个没有任何样式的新表格

<table style="no style">

我可以为新表编写一个不同的类并应用该类,但问题是要覆盖的样式太多了。有这样的属性吗?

5 个答案:

答案 0 :(得分:5)

不幸的是,没有办法“重置”一个元素。这是建议不要给元素过度拱形样式的一个原因。当您想要更改它时,它可能会成为一个问题。你有两个选择。

  1. 改为创建一个类,并给出所有类的现有表。
  2. 只需覆盖新表的新类中的更改。

答案 1 :(得分:3)

不。你最好将你的初始大型风格限制在一个类:

table.complex-styling {
  large amount of styles..
}

答案 2 :(得分:3)

在你的CSS中你可以使用css3伪选择器:not()

table:not(.no_style) {
    large amout of styles
}

这些风格不适用于table.no_style。但是浏览器对css3选择器的支持是有限的。

答案 3 :(得分:2)

"large amount of styles"是多少?

考虑到这一点:

  

@paul ...是的...我也同意,但是   问题是我的遗留应用程序和我   必须改变风格   到处都是(很多代码要改变)和   如果我想念任何人,它会导致   风格破碎。 - ruby​​prince

除非有笑话数量,否则最好的办法是将table上定义的所有属性覆盖为合理的默认值。

要了解每个属性的“默认值”,请参阅:How can I nullify css property?

一个具体的例子:http://jsfiddle.net/nE4qm/

table {
    font-size: 20px;
    color: red;
    margin: 20px;
    position: relative;
    left: 30px;
    text-align: center;
    border: 1px solid #000
}
.removeStupidTableCSS {
    font-size: medium;
    color: #000;
    margin: 0;
    position: static;
    left: auto;
    text-align: left;
    border: 0
}
.myShinyNewTable {
    color: blue
}

<table>
    <tr>
        <td>Old table</td>
    </tr>
</table>

<hr />

<table class="removeStupidTableCSS myShinyNewTable">
    <tr>
        <td>New table</td>
    </tr>
</table>

答案 4 :(得分:0)

否&amp;我希望有。不幸的是,覆盖父母的风格是唯一的方法。