🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
CSS

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

Q&A

解決済

2回答

3097閲覧

css nth-child 子要素にまで反映される

tetro

総合スコア8

CSS

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

0グッド

0クリップ

投稿2021/02/17 12:31

編集2021/02/17 13:09

おこっていること

下記コードで偶数の要素にcssを適用させたいのですが、指定クラスの下にいくつかdivの子要素があるため、親要素(testがあるdiv)には反映されていないのですが子要素には反映されてしまいます。(伝わりにくかったらすみません)
notも試してみたのですが、今度は偶数要素に反映されなかったりでうまくいきません。
いい方法はありませんか?

JavaScript

1.test :nth-child(even) { 2 ... 3 }

HTML

1<div class="chat-line__message" data-a-target="chat-line-message" data-test-selector="chat-line-message" tabindex="0"> 2 <div class="tw-relative"> 3 <div data-test-selector="chat-message-highlight" class="chat-line__message-highlight tw-absolute tw-border-radius-medium"></div> 4 <div class="chat-line__message-container tw-relative"> 5 <div class=""> 6 <div class="chat-line__no-background tw-inline"> 7 <div class="chat-line__username-container tw-inline-block"><span></span><span class="chat-line__username" role="button" tabindex="0"><span><span class="chat-author__display-name" data-a-target="chat-message-username" data-a-user="trtr326" data-test-selector="message-username" style="color: rgb(138, 43, 226);">aaa</span></span> 8 </span> 9 </div><span aria-hidden="true" data-test-selector="chat-message-separator">: </span><span class="text-fragment" data-a-target="chat-message-text">aaa</span></div> 10 </div> 11 </div> 12 <div class="chat-line__reply-icon tw-absolute tw-border-radius-medium tw-c-background-base tw-elevation-1"><button class="ScCoreButton-sc-1qn4ixc-0 gqSiKD tw-button-icon tw-core-button" aria-label="クリックして返信" data-test-selector="chat-reply-button"><span class="tw-button-icon__icon"><div style="width: 2rem; height: 2rem;"><div class="ScIconLayout-sc-1bgeryd-0 kbOjdP tw-icon"><div class="ScAspectRatio-sc-1sw3lwy-1 dNNaBC tw-aspect"><div class="ScAspectSpacer-sc-1sw3lwy-0 gkBhyN"></div><svg width="100%" height="100%" version="1.1" viewBox="0 0 20 20" x="0px" y="0px" class="ScIconSVG-sc-1bgeryd-1 cMQeyU"><path d="M8.5 5.5L7 4L2 9L7 14L8.5 12.5L6 10H10C12.2091 10 14 11.7909 14 14V16H16V14C16 10.6863 13.3137 8 10 8H6L8.5 5.5Z"></path></svg></div></div></div></span></button></div> 13 </div> 14</div>

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

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

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

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

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

maisumakun

2021/02/17 12:32

HTMLも提示していただければと思います。
tetro

2021/02/17 13:10

外部サイトです。 これが親要素の一つです。
maisumakun

2021/02/17 13:12

どこに適用したくて、どこに適用したくないのでしょうか?(質問文を読んでも判断できませんでした)
tetro

2021/02/17 13:17

これが何十個かあって(リストのような感じ)、それの偶数列に適用させたいです ・適用させない ・適用させる ・適用させない ・適用させる    ・    ・     ・ というような感じなのですが、適用させたくないところの親要素(chat-line__message)には反映されていないのですが、<div class="tw-relative">などの子要素には反映されている感じです。
maisumakun

2021/02/17 13:19

.testのHTML要素はどこでしょうか?
maisumakun

2021/02/17 13:21

> これが何十個かあって(リストのような感じ)、 「これ」とはどれですか?
tetro

2021/02/17 13:26 編集

testは chat-line__message です。書き換え忘れてましたすみません。 これは<div class="chat-line__message" data-a-target="chat-line-message" data-test-selector="chat-line-message" tabindex="0">...<div>のことです。
guest

回答2

0

.test :nth-child(even)は、「.test子孫要素のうち、兄弟の中で偶数番目にあるもの」という意味です。

.test自体に適用するなら、.test:nth-child(even)となります。

投稿2021/02/17 13:28

maisumakun

総合スコア145977

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

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

0

ベストアンサー

css

1.test :nth-child(even) { 2 color: red; 3 }

だと、子 孫 曾孫 ・・・と子孫すべてに反映されます。

子孫結合子 - CSS: カスケーディングスタイルシート | MDN

直接の子だけに反映させたいのなら、

css

1.test > :nth-child(even) { 2 color: red; 3 }

子結合子 - CSS: カスケーディングスタイルシート | MDN

投稿2021/02/17 13:25

編集2021/02/17 13:27
hatena19

総合スコア34073

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

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

tetro

2021/02/17 13:30

ありがとうございます!!! そんな書き方あがったんですね。 もっと勉強したいと思います!
hatena19

2021/02/17 14:04

maisumakunさんの回答のように .test:nth-child(even) と空白をいれないと、兄弟要素内での偶数番目という意味になりますのでこれも合わせて覚えておくいいでしょう。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問