質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

2回答

221閲覧

子要素で先頭の時だけスタイルを適用する

yuki84web

総合スコア1857

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2019/05/29 08:10

具体的には、

html

1<div class="hoge"> 2 <h1>タイトル1<h1> <!--ここだけ適用--> 3 <p>テキストテキスト</p> 4 <h1>タイトル2<h1> 5 <p>テキストテキスト</p> 6 <h1>タイトル3<h1> 7 <p>テキストテキスト</p> 8</div>

上記において、hogeクラスの子要素である
先頭の"タイトル1"というh1タグのみにスタイルを適用したいが、
"タイトル1"の前に別の要素がある場合はスタイルは適用したくない。

html

1<div class="hoge"> 2 <p>テキストテキスト</p> 3 <h1>タイトル1<h1> <!--子要素の先頭ではないので適用しない--> 4 <p>テキストテキスト</p> 5 <h1>タイトル2<h1> 6 <p>テキストテキスト</p> 7 <h1>タイトル3<h1> 8 <p>テキストテキスト</p> 9</div>

スマートな方法はありますでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mutsuki22

2019/05/29 08:25 編集

必要に応じてクラス名を付ける以外で、何か特別な構文?(専門的な用語をど忘れしました、申し訳ありません)的なものがないかって事ですか?
yuki84web

2019/05/29 08:38

仰る通り、HTMLにクラスを付ける以外の方法です
guest

回答2

0

ベストアンサー

同セクショニング内では、h1は複数あるのは、セマンティクス正しくはないですが・・・。

nth-of-type():first-child疑似セレクタを使います。

CSS

1.hoge h1:first-child { 2 /* スタイル内容 */ 3}

他にもいろいろなセレクタで、可能なので、
調べてみるとよいでしょう。

投稿2019/05/29 08:13

編集2019/05/29 08:15
miyabi_takatsuk

総合スコア9528

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mutsuki22

2019/05/29 08:22 編集

>h1は複数あるのは、セマンティクス正しくはないですが・・・。 指摘されるまで違和感を抱かなかったという・・・orz
miyabi_takatsuk

2019/05/29 08:22

HTML5の時点でも、HTML内に複数ありでも、あくまで同セクショングには一個だけでしたからねー 汗 そこらへんややこしかったから、HTML5.1以降のルールの方がわかりやすくていいですよね。
yuki84web

2019/05/29 08:40

h1の扱いについての指摘ありがとうございます。サンプルソースは問題ありですが、実際作成中のページにおいては、h1はページ内に1つだけ存在するページタイトルに、それ以外のタイトルはh2以降を使用するようにしています。
miyabi_takatsuk

2019/05/29 09:52

質問者さん>お、であれば、問題なさそうですね。 いちおう、サンプルコードの時も、本番想定や、自分の実コードの方が、勘違いを生まなくていいかもしれません。 ひとまず、質問解決もされたようで何よりです!
guest

0

CSS

1<style> 2.hoge h1:nth-child(1){background-Color:red;} 3.hoge h1{background-Color:yellow;} 4.fuga h1:nth-child(1){background-Color:blue;} 5.fuga h1{background-Color:yellow;} 6</style> 7<div class="hoge"> 8 <h1>タイトル1</h1> 9 <p>テキストテキスト</p> 10 <h1>タイトル2</h1> 11 <p>テキストテキスト</p> 12 <h1>タイトル3</h1> 13 <p>テキストテキスト</p> 14</div> 15<hr> 16<div class="fuga"> 17 <p>テキストテキスト</p> 18 <h1>タイトル1</h1> 19 <p>テキストテキスト</p> 20 <h1>タイトル2</h1> 21 <p>テキストテキスト</p> 22 <h1>タイトル3</h1> 23 <p>テキストテキスト</p> 24</div>

投稿2019/05/29 08:20

yambejp

総合スコア114837

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yambejp

2019/05/29 08:22

nth-childはsiblingの中での出現位置なので上記のようになります 逆に複数あるh2のうちのn番目とかはcssでは指定しづらいです
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問