2012-03-16 13 views
1

こんにちは、 CSS HTMLセレクタとクラスセレクタを使用しているときに私は奇妙な動作を見ました。CSS HTMLセレクタとクラスセレクタ

<div class="content"> 
    <h1>Registration Form</h1> 
</div> 

とCSSファイル内の私が持っている:私はこのコードを持っているHTMLファイル内 コードの上に

.content 
{ 
    margin:auto; 
    width:600px; 
    border:solid 1px black; 
    background-color:White; 
    padding:10px; 
} 

h1 
{ 
    color:Gray; 
    font-size:18px; 
    border-bottom:solid 1px orange; 
} 

は完璧に動作します。 h1 HTMLセレクタをクラスセレクタに変更したときに、.hh1 class="h"が完璧に機能しました。

私はdiv.contentクラスセレクタを変更 は、出力が変化(すなわち、IはDIV HTMLセレクタ自体にdivタグのクラスセレクタを変換しました)。 テキスト登録フォームは表示されませんでしたが、登録フォームテキストが存在する領域の上下に水平線が表示されました。 なぜこの奇妙な動作ですか?

SAMEスタイルのルールエフェクトを適用しても、クラスセレクタとHTMLセレクタが異なる動作をすることは証明されていますか?

+0

あなたは何を選択するために使用していますか?ネイティブのjavascript? jquery? mootools? – Kristian

+0

あなたはhttp://jsfiddle.net/で私たちのための例を作ることができます。なぜなら、あなたは何かを矛盾する必要がないように定義するからです。 – sandeep

+0

あなたのHTMLには、あなたが見せている以上に多くのことが起こります。 '.content {}'を 'DIV {}'に切り替えると、すべての 'DIV'タグに影響します。他の 'DIV'が矛盾している可能性があります。もう1つの問題は、他のCSSや具体的な問題です。私は特異性を想起するためにこのサイトを楽しんでいます。http://www.stuffandnonsense.co.uk/archives/css_specificity_wars.html – jmbertucci

答えて

3

クラスセレクタは型セレクタよりも具体的です。

タイプセレクタをクラスセレクタに変更すると、最初のセレクタが優先されます。

ファーストクラスのセレクタをタイプセレクタに変更すると、2番目のセレクタがより具体的になり、優先されます。

+0

http://www.w3.org/TR/CSS21/cascade.html#specificity – Wex

関連する問題