:only-child

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

:only-childCSS擬似クラスで、兄弟要素がない要素を表します。 :first-child:last-child または :nth-child(1):nth-last-child(1) と同じですが、詳細度はより低くなります。

css
/* 親の唯一の子である <p> 要素をすべて選択 */
p:only-child {
  background-color: lime;
}

試してみましょう

メモ: 最初の定義では、親のある要素のみが選択されていました。 Selectors Level 4 の初期に、これは必要なくなりました。

構文

:only-child

基本的な例

HTML

html
<div>
  <div>I am an only child.</div>
</div>

<div>
  <div>I am the 1st sibling.</div>
  <div>I am the 2nd sibling.</div>
  <div>
    I am the 3rd sibling,
    <div>but this is an only child.</div>
  </div>
</div>

CSS

css
div:only-child {
  color: red;
}

div {
  display: inline-block;
  margin: 6px;
  outline: 1px solid;
}

結果

リストの例

HTML

html
<ol>
  <li>
    First
    <ul>
      <li>This list has just one element.</li>
    </ul>
  </li>
  <li>
    Second
    <ul>
      <li>This list has three elements.</li>
      <li>This list has three elements.</li>
      <li>This list has three elements.</li>
    </ul>
  </li>
</ol>

CSS

css
li li {
  list-style-type: disc;
}

li:only-child {
  color: red;
  list-style-type: square;
}

結果

仕様書

Specification
Selectors Level 4
# only-child-pseudo

ブラウザーの互換性

BCD tables only load in the browser

関連情報