やりたいこと
dl(説明リストタグ)の一番上のddタグに上のボーダーつけたい。
<div class="news">
<h2>News</h2>
<dl>
<dt>2020.XX.XX</dt>
<dd>デザイン雑誌「XXXXXX Vol.11』に掲載していただきました。</dd> ←このddに上のボーターをつけたい
~~ 中略 〜〜
</dl>
</div>
失敗したコード
dt:first-child,
dd:first-child { ← これが効いていない
border-top: 1px solid #c8c8c8;
}
原因
first-child
は全体のタグを含めた中の要素からfirst(1番目)という指定になるみたいです。
<div class="news">
<h2>News</h2>
<dl>
<dt>2020.XX.XX</dt> ← これが1番目!
<dd>デザイン雑誌「XXXXXX Vol.11』に掲載していただきました。</dd> ←1番目じゃないのでfirst-childが適用されない
~~ 中略 〜〜
</dl>
</div>
対処法
dt:first-child,
dt:first-child + dd {
border-top: 1px solid #c8c8c8;
}
「+」は、指定した要素に隣接する要素にスタイルを適用します。
これでdt:first-child
から隣接するddにスタイルを適用できます。