浪人のサムライ

TOP

ボックスの横にアイコンを置く

ボックスの横にアイコンを置く方法です。少ないコードで実現できます。完成形は以下になります。

  • B
  • B
  • B

HTML



<div class="box">
<div class="box__window">
</div>
<ul>
<li>B</li>
<li>B</li>
<li>B</li>
</ul>
</div>


boxで囲んでいます。画面となる灰色のボックスにコンテンツが表示されます。ここでは空白にしています

簡単なコードです。

SCSS



.box {
  display: flex;
  gap: 10px;
  &__window {
    width: 100%;
    height: 300px;
    background: #ccc
  }
  ul {
    li {
      background: rgb(229, 229, 229);
      width: 30px;
      height: 30px;
      border-radius: 50%;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      margin-bottom: 1rem;
    }
  }
}


boxにflexを書き、その中のwindowというクラスにスタイルを割り当てています。ここでは、widthとheight、そして、画面の色を書いています。

ここではboxの中に、windowと、ulの2つが横並びしています。別々にすることで、flexで横並びができます。

liにたいした、SCSSの、


display: flex;
flex-direction: column;
align-items: center;
justify-content: center;

これは、丸の中のテキスト(B)を上下左右の中央にしています。

CSS


.box {
  display: flex;
  gap: 10px;
}
.box__window {
  width: 100%;
  height: 300px;
  background: #ccc;
}
.box ul li {
  background: rgb(229, 229, 229);
  width: 30px;
  height: 30px;
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin-bottom: 1rem;
}

書いていることはSCSSと同じです。書き方の違いのみです。僕はSCSSを書いています。CSSの書き方を忘れました。ただ、SCSSでもCSSと同じように書くこともあるので、取り組みやすいと思います。

ちなみに、SCSSは最終的にCSSにコンパイルする必要があります。例えば、vscodeであれば、プラグインでコンパイルできます。

さいごに

あまり使い道はないと思いますが、こういう方法もある思って頂ければ、デザインの幅が広がりますね。気になる方はお試しあれ。