h1
というクラスを持つdiv
内の最初のdetail_container
を選択しようとしています。 h1
がこのdiv
内の最初の要素である場合は機能しますが、このul
の後にある場合は機能しません。
<style type="text/css">
.detail_container h1:first-child
{
color:blue;
}
</style>
</head>
<body>
<div class="detail_container">
<ul>
<li></li>
<li></li>
</ul>
<h1>First H1</h1>
<h1>Second H1</h1>
</div>
</body>
</html>
このdiv
のどこにいても、最初のh1
を選択するというCSSの印象を受けました。どうすればそれを機能させることができますか?
h1:first-child
セレクターは
親の最初の子を選択します
_h1
要素の場合のみ。
ここのコンテナの:first-child
はul
であるため、h1:first-child
を満たすことができません。
あなたのケースにはCSS3の:first-of-type
があります:
.detail_container h1:first-of-type
{
color: blue;
}
しかし、ブラウザの互換性の問題など、最初のh1
にクラスを与えてから、そのクラスをターゲットにした方が良いでしょう:
.detail_container h1.first
{
color: blue;
}
_:first-child
_は、最初の_h1
_ifを選択し、ifが親要素の最初の子である場合にのみ選択しますあなたの例では、ul
はdiv
の最初の子です。
擬似クラスの名前はやや誤解を招くかもしれませんが、仕様でかなり明確に説明されています here .
jQueryの_:first
_セレクターは、探しているものを提供します。あなたはこれを行うことができます:
$('.detail_container h1:first').css("color", "blue");
その特定のケースでは、次を使用できます。
.detail_container > ul + h1{
color: blue;
}
しかし、多くの場合に同じセレクターが必要な場合は、BoltClockが言ったように、それらのクラスが必要です。
あなたも使用できます
.detail_container h1:nth-of-type(1)
数字の1を他の数字で変更すると、他のh1アイテムを選択できます。
h1
タグは別のdiv
にあり、最初のタグはfirst-child
。 div
にはスタイルさえ必要ありません。それはそれらの子供たちを分離するための単なる方法です。
<div class="h1-holder">
<h1>Title 1</h1>
<h1>Title 2</h1>
</div>
要素は<body>
タグから直接継承できません。 <dir style="padding-left:0px;"></dir>
タグに入れてみてください。