👋

 フレックスボックスで一方のアイテムの高さに自動でならない問題

2022/05/23に公開

コーディングしている際によくあるアコーディオンを実装していた際にハマってしまったのでメモ。

上記の画像のように右側のアコーディオン(画像ではなっていないが)の要素の数が増えたり減ったりしても左のタイトルの高さが自動で変わるようにしたかったのだがなぜかならず。

そのときが下記のコード。

html

<div class="flex">
  <h4 class="item01">タイトル</h4>
  <ul class="item02">
     <li class="list">
        <a href="">説明文。説明文。説明文。説明文。説明文。説明文。</a>
     </li>
     <li class="list">
         <a href="">説明文。説明文。説明文。説明文。説明文。説明文。</a>
     </li>
 </ul>

css

.flex{
    display: flex;
    align-items: center;
}

.item01{   
  font-size: 20px;
  margin: 0 20px 0 0;
  background-color: #4259b4;
  width: 200px;
  display: flex;
  justify-content: center;
  align-items: center;
}
.item02{
  border-top: 1px solid #000;
  padding: 0;
  margin: 0;
}  

.list{
  list-style: none;
  padding: 10px;
  border-bottom: 1px solid #000
}

結果的に

.flex{
    display: flex;
    align-items: center; //←こいつがいらなかった
}

脳死でalign-items: center;を親要素につけていなかったのが原因だった。
解決してみればなんでないことだが気づくのに1時間くらいかかってしまった、、。

完成

Discussion