メニューが複数あって、最後のメニューの文字(aタグでリンク設定済み)の色だけ変えたいために、下記のように設定してるんですが、青くなりません。last-childとやっているのに、それ以外のリンクを設定している部分も青色になってしまいます。
.h-menu{ display: flex; align-items: center; } .h-list{ display: inline-block; position: relative; } .h-list a{ color: black; display: block; } .h-list:last-child { background: yellow; color:#white; } ul { list-style: none; }
<nav class="h-nav"> <ul class="h-menu"> <li class="h-list"> <a href="#">A</a> <ul class="sub-menu"> <li class="sub-menu-item a"> <a href="#">A-1</a> </li> <li class="sub-menu-item a"> <a href="#">A-2</a> </li> </ul> </li> <li class="h-list"> B </li> <li class="h-list"> <a href="#">C</a> </li> <li class="h-list"> D </li> <li class="h-list"> E </li> <li class="h-list"> <a href="#">F</a> </li> <li class="h-list"> <a href="#">G</a> </li> </ul> </nav>
解決策を教えて下さい。
HTMLコードも提示してもらわないと、的確な回答は難しいです。
すみません、お願いします
<nav class="h-nav">
<ul class="h-menu">
<li class="h-list">
<a href="#">A</a>
<ul class="sub-menu">
<li class="sub-menu-item a">
<a href="#">A-1</a>
</li>
<li class="h-list">
<a href="#">B</a>
</li>
<li class="h-list">
<a href="#">C</a>
</li>
</ul>
</nav>
質問は編集できますので、質問に追記してください。
ここは普段は閉じているので目につきにくいです。
あとCSSも一部ではなくメニュー全体のものを提示してください。
なぜか変わりません・・・黒字のママです・・・
HTMLのULの開始タグと終了タグの数があってません。ただしいものに修正してください。
メニュー全体のCSSを追記してください。
コードはコードブロックに入れてください。
修正しました。よろしくお願い致します。
修正ありがとうございました。
私の回答のコードは試してみしたか。
.h-list:last-child a {
color: blue;
}
最後の .h-list 内の a というように指定することになります。
できました。本当にありがとうございました。調べても方法があるページが見当たりませんでした。よろしければ、検索の仕方、キーワードなど後学のために教えて下さいませんでしょうか?
そのものずばりのキーワードはちょっと思いつかないですが、
公式ドキュメントのMDNの解説をじっくりと読んて意味を理解することから始めるといいと思います。
:last-child - CSS: カスケーディングスタイルシート | MDN
https://developer.mozilla.org/ja/docs/Web/CSS/:last-child
「兄弟要素のグループの中で最後の要素を表します。」
分かりました。ご親切に本当にありがとうございました。また何かありましたら宜しくお願い致します。
回答2件
あなたの回答
tips
プレビュー