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

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

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

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Q&A

2回答

358閲覧

擬似要素のnth-childを否定したい

yusshi

総合スコア7

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

1グッド

0クリップ

投稿2022/06/20 21:09

編集2022/06/21 06:59

イメージ説明

三本のborder-rightが見えるかと思います。このうちの最後の三本目は必要無いので擬似要素を使って消そうと思ったのですが、上手く指定できません。

目的は仕切りを縦に作ることですのでそちらの方法を教えてもらっても大変ありがたく感じます。
しかし、同じクラスで設定して一つの要素だけを否定する方法はこれからも使用することになるので教えてもらえると助かります。

.news_content :not(:last-child) {
border-right: #000 solid 2px;
親要素がnews_content なのでその子要素として指定したのですが、上手く適応できませんでした。

<section class="section_02"> <div class="news_content"> <ul> <li>2021.01.01</li> <li class="news_heading">NEWS</li> </ul> <p>テキストテキストテキストテキスト</p> </div> <!-- 以下2回繰り返し --> </div> <div class="news_content"> <ul> <li>2021.01.01</li> <li class="news_heading">NEWS</li> </ul> <p>テキストテキストテキストテキスト</p> </div> </div> <div class="news_content"> <ul> <li>2021.01.01</li> <li class="news_heading">NEWS</li> </ul> <p>テキストテキストテキストテキスト</p> </div> </section> .section_02 { display: flex; margin-left: 15%; } .news_header { margin-bottom: 10px; } .news_content { margin-right: 50px; border-right: #000 solid 2px; padding-right: 10px; } .news_content ul { display: flex; } .section_02 ul { list-style: none; align-items: center; } .section_02 p { margin-top: 30px; } .news_heading { background-color: #000; color: #fff; padding: 5px 10px; margin-left: 20px; }
a22r1345👍を押しています

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

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

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

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

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

int32_t

2022/06/21 00:26 編集

問題を再現できる完全なHTMLとCSSを開示してください。そのセレクタが合っているかどうかはHTMLを見ないとわかりません。 疑似要素というのは ::before や ::after のことです。質問は疑似クラスのことですね。 https://developer.mozilla.org/ja/docs/Web/CSS/Pseudo-classes
hatena19

2022/06/21 04:05

考え方としては提示のコード :not(:last-child) で問題ないので、セレクタの指定を間違っているのでしょう。
yusshi

2022/06/21 10:40

コードを挿入しました。 ご確認いただければ幸いです。
guest

回答2

0

とりあえず、HTMLが下記だとして、

html

1<div class="news_content"> 2 <div>aaaaa</div> 3 <div>bbbbb</div> 4 <div>ccccc</div> 5</div>

css

1.news_content :not(:last-child) { 2 border-right: #000 solid 2px; 3}

でいいはずです。ただし、孫要素などにも効いてきてしまうので、

css

1.news_content > :not(:last-child) { 2 border-right: #000 solid 2px; 3}

として子要素に限定した方がいいでしょう。

投稿2022/06/21 06:55

hatena19

総合スコア33715

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

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

0

.news_contentと:not(:last-child) { の間にある半角スペースを削除してみてください。

CSS

1.news_content:not(:last-child) { 2border-right: #000 solid 2px;

投稿2022/06/21 04:49

inquirer

総合スコア84

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

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

hatena19

2022/06/21 06:48

「.news_contentは親要素」と言ってますのでその半角スペースは必要では?
hatena19

2022/06/21 07:17

追記されたHTMLを見たら、「.news_contentは親要素」という意味が異なっていたようです。 ですので、inquirerさんの回答で解決しそうです。
yusshi

2022/06/24 06:19

親要素がsection_02だと判断してコーディングをしたのですが、上手く反映できません。原因がお分かりでしたら、返信いただければ幸いです。
2ckD

2022/06/25 13:58

inquirerさんの回答をそのままコピペしてhtmlとして開きましたが、しっかりと最後の要素以外にcssを適用することができています。書き写し間違いはありませんか?エラーは出ていませんか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問