CSSの疑似要素でリストのマークを作る方法

こんにちは!

今回はCSSの疑似要素でリストのマークを作る方法についてまとめます。

今回作るリスト

サンプルコード

<ul>
  <li>list1</li>
  <li>list2</li>
  <li>list3</li>
</ul>

CSSの疑似要素で実装

ul li {
  position: relative
}

ul li::before {
  content: "";
  width: 10px;
  height: 10px;
  border-top: 3px solid #555;
  border-right: 3px solid #555;
  rotate: 45deg;
  position: absolute;
  top: 50%;
  left: -30px;
  transform: translateY(-50%);
}

ポイント

  • li要素にposition: relativeとし、位置指定の基準にする
    • ここの基準をulにしてしまうと、それぞれのli要素にマークがつかずに、一か所に重なってしまう
  • 疑似要素で図形を作る時はcontent: ""を指定
  • width: 10px, heigth: 10pxで四角の箱を用意
  • border-top, border-rightで上辺と右辺に線を引く
  • rotate: 45degで右に45度回転し矢印に見えるように
  • top: 50%transform: translateY(-50%)の組み合わせで上下中央揃え

おわりに

今回はCSSの疑似要素でリストのマークを作る方法についてまとめました。疑似要素の::beforeなどを見ると苦手意識がありましたが、少しずつ慣れてきたように思います。

94/100