最終更新日:

【CSS入門】リストの2つ目以降にだけ余白をつける3つの方法

【CSS入門】リストの2つ目以降にだけ余白をつける3つの方法

こんにちは。五平餅くんです。

リスト(ul li)を作るとき、項目どうしの間に余白をつけたいことがありますよね。
でも、最初の項目だけは余白をつけたくないケースが多いです。

こういうときに使える「2つ目以降だけに余白をつける方法」を3つ紹介します。

方法①:li + li を使う

<div class="inner">
  <ul class="just-ul">
    <li>リストだよ。最初のliにはmargin-topがつかないよ</li>
    <li>リストだよ。2つ目以降にmargin-topがつくよ</li>
    <li>リストだよ。2つ目以降にmargin-topがつくよ</li>
    <li>リストだよ。2つ目以降にmargin-topがつくよ</li>
    <li>リストだよ。2つ目以降にmargin-topがつくよ</li>
  </ul>
</div>
/* リセット */
ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

/* ベース設定 */
.inner {
  max-width: 800px;
  width: 97%;
  margin: 0 auto;
}

li {
  padding-left: 1em;
  text-indent: -1em;
}

li:before {
  content: '・';
}

/* !ここから重要!2つ目以降に余白をつける */
.just-ul li + li {
  margin-top: 15px;
}

どういう意味?

  • 「直前にliがあるli」にだけ当たるルールです。
  • だから、自然と2つ目以降にだけ余白がつきます。

メリット

  • 一番シンプルで分かりやすい書き方

デメリット

  • 途中に別のタグ(例:<p>)が入ると効かなくなる

方法②::not(:first-child) を使う

<div class="inner">
  <ul class="just-ul-02">
    <li>リストだよ。最初のliにはmargin-topがつかないよ</li>
    <li>リストだよ。2つ目以降にmargin-topがつくよ</li>
    <li>リストだよ。2つ目以降にmargin-topがつくよ</li>
    <li>リストだよ。2つ目以降にmargin-topがつくよ</li>
    <li>リストだよ。2つ目以降にmargin-topがつくよ</li>
  </ul>
</div>
.just-ul-02 li:not(:first-child) {
  margin-top: 15px;
}

どういう意味?

  • :first-child は「最初の子要素」
  • :not(:first-child) は「最初じゃない子要素」
  • つまり2つ目以降にだけ余白がつきます。

メリット

  • 「最初を除外する」と書いてあるので意図が分かりやすい

デメリット

  • 少しコードが長く見える

方法③:nth-child(n+2) を使う

<div class="inner">
  <ul class="just-ul-03">
    <li>リストだよ。最初のliにはmargin-topがつかないよ</li>
    <li>リストだよ。2つ目以降にmargin-topがつくよ</li>
    <li>リストだよ。2つ目以降にmargin-topがつくよ</li>
    <li>リストだよ。2つ目以降にmargin-topがつくよ</li>
    <li>リストだよ。2つ目以降にmargin-topがつくよ</li>
  </ul>
</div>
.just-ul-03 li:nth-child(n+2) {
  margin-top: 15px;
}

どういう意味?

  • nth-child は「○番目の子要素」という指定
  • n+2 は「2番目以降ぜんぶ」
  • だから2つ目以降に余白がつきます。

メリット

  • 「3つ目から」など自由に調整できる
  • 応用が効く

デメリット

  • n+2 の意味が初心者には少し分かりづらい

リストの2つ目以降にだけ余白をつける3つの方法の表

この3つを表にまとめるとこんな感じになります。

書き方メリットデメリット
li + liシンプルで覚えやすい他の要素が入ると効かない
:not(:first-child)「最初以外」と分かりやすいコードが長め
nth-child(n+2)何番目からでも指定できる意味が分かりづらい

初心者におすすめの選び方

  • シンプルに書きたい → 方法①(li + li)
  • 「最初を除外」とはっきり書きたい → 方法②
  • 柔軟に番号を変えたい → 方法③

まずは方法①を覚えておけばOKです。慣れてきたら他の方法も使い分けてみましょう!

最後まで読んでいただきありがとうございました!

フリーランスとしてこのスキルをどう仕事につなげるかについては、noteで詳しく書いています。
興味のある方はぜひ。

noteはこちら

関連記事

人気記事