2009-05-11 7 views
6

さて、私は2つのCSSはlayout.cssCSSスタイルを上書きする?

Table.infoBox tr td table tr td 
{ 
    padding: 0px; 
    border: 0px; 
} 

ATJournal.css

table.ATJMainTable tr td 
{ 
    border: 1px solid black; 
    padding: 3px; 
} 

<link href="Styles/layout.css" rel="stylesheet" type="text/css" /> 
<link href="Styles/ATJournal.css" rel="stylesheet" type="text/css" /> 

含まれているし、我々は

<Table class="infoBox"> 
    <tr> 
     <td> 
     <table class="ATJMainTable"> 
      <tr> 
       <td> 
        some text! 
       </td> 
      </tr> 
     </table> 
    </tr> 
</table> 

は、なぜこのテーブルに持っていますこの場合、layout.cssはATJournal.cssを上書きしますか?私は、CSSの順序は「layout.cssは」まだATJournal.cssを上書き含ん変更しても

....

答えて

11

セレクタはより具体的です。

Table.infoBox tr td table tr td 

は、インフォボックスで分類されたテーブルの内側にあるテーブル内のスタイリング用のtdセルです。 !特にその部分を上書きする

table.infoBox tr td table.ATJMainTable tr td 

table.ATJMainTable tr td 

はあなたが特異性を上書きすることが重要使用することができ、またはあなたのような何かができるATJMainTable

で分類テーブル内のTD細胞をスタイリングされます。

また、Infoboxセレクタを特定しないように減らすことはできますか?

3

それはより具体的なセレクタです。

hereを参照してください。

10

!importantを使用して実際にどのルールが勝つかを指定できます。

table.ATJMainTable tr td 
{ 
    border: 1px solid black !important; 
    padding: 3px !important; 
} 

これは、基本的にはこのルールは、最も重要なルールで、他のすべては、この規則の賛成でカスケード接続する必要があることを確認しなければならないこと、ブラウザに指示します。

警告:これはあまり使用すると追跡が困難な場合に問題が発生するため、これを控えめに使用することをお勧めします。

+3

この構文をすべて一緒に使用しないでください。それを使用することは悪くないが、あなたがそれを避けることができるなら、あなたはすべきである。 –

+4

これは質問に対する答えではありません。それは質問にインスパイアされた問題の解決策かもしれませんが、それは貧しいものです。 – Jasper

+0

@ジャスパー今数年後、私はCSSのより大きな理解を持っていましたが、この答えは問題を解決するための正しい方法ではないので、受け入れられた答えを変更しました! – Peter

関連する問題