2015-12-08 40 views
-2

我有以下的html代码:的CSS除了时刻HTML元素时,元素定义了覆盖

<div class="content"> 
<p><table> <tr><td>sadsa</td><td>sadasdsa</td></tr></table></p> 
<p><p><table> <tr><td>sadadsa</td><td>asdasasdsa</td></tr></table></p></p> 
<form><table> <tr><td><input></td><td><input></td></tr></table> 
</div> 

和CSS代码:

.content table tr td{ 
    color: white; 
    padding: 3px; 
    border: 1px solid white; 
} 

<table>可以有任何重叠和任意数量的HTML他们。 我需要我的CSS适用于所有这些,除非<form>是覆盖。

换句话说,如果.content有孩子<form><form>有孩子<table>我的CSS不应该工作。他们之间可以有其他的孩子/父母喜欢0​​等

+0

当你说“覆盖”你是指父母的元素?例如,你是否试图制作一种颜色的表格单元格和不是不同颜色的表格单元格? – wf4

+0

你的HTML是无效的,也表格应该只用于表格数据,你使用它们的方式看起来不正确,但你想看看CSS的特异性,这将回答你的问题 – Pete

回答

0

使用:not()选择:

http://www.w3schools.com/cssref/sel_not.asp

我也改变了你的HTML,因为你<table>标签内<p>这是不允许的:

Why is <table> not allowed inside <p>

.content :not(form) table tr td{ 
 
    color: white; 
 
    padding: 3px; 
 
    border: 1px solid white; 
 
}
<div class="content"> 
 
    <div> 
 
    <table> 
 
    <tr> 
 
     <td>sadsa</td> 
 
     <td>sadasdsa</td> 
 
    </tr> 
 
    </table> 
 
    </div> 
 
    <div> 
 
    <div> 
 
     <table> 
 
     <tr> 
 
      <td>sadadsa</td> 
 
      <td>asdasasdsa</td> 
 
     </tr> 
 
     </table> 
 
    </div> 
 
    </div> 
 
    <form> 
 
    <table> 
 
     <tr> 
 
     <td><input></td> 
 
     <td><input></td> 
 
     </tr> 
 
    </table> 
 
    </form> 
 
</div>

+0

坚持,这将不会工作时嵌套... –

+0

谢谢你的答案,但如果表没有覆盖“div”这不工作 –