サイトオープン時に記事が1つしかなくて生じた表示のずれをCSSで整えたかった場合に使った。納品後に作業しなくてよいように。
:hasの書き方
一つ目の:has(li:first-child)で一つ以上<li>を持つかを判断しています。
二つ目の:not(:has(li:first-child + li))で、2個目の<li>が無いことを判断しています。
<li>が1個以上あるけれど、2個以上はないので、1個、になります。
ul:has(li:first-child):not(:has(li:first-child + li)){ background-color: red; }
表示例
例えば以下のような場合に、
- の背景色だけ赤色になります。
<ul> <li>1個しかない場合は背景色が赤色</li> </ul> <ul> <li>2個あるから背景色が変化なし</li> <li>2個あるから背景色が変化なし</li> </ul>
- 1個しかない場合は背景色が赤色
- 2個あるから背景色が変化なし
- 2個あるから背景色が変化なし