行数が異なるテキストの高さを縦センター寄りにする方法

HTML&CSS

行数が異なるテキストの高さを縦センター寄りにする方法

こんにちは。今日は「行数が異なるテキストの高さを縦センター寄りにする方法」について書きます!
イメージはこんな感じです↓

ではさっそくコードを見ていきましょう〜!

 

コード

HTML編

        <div class="listBlock">
          <ul class="itemList">
            <li>
              <div class="liInner">
                <p class="tit"><span>テキストが入ります<br>テキストが入ります</span></p>
              </div>
            </li>
            <li>
              <div class="liInner">
                <p class="tit"><span>テキストが入ります</span></p>
              </div>
            </li>
            <li>
              <div class="liInner">
                <p class="tit"><span>テキストが入ります</span></p>
              </div>
            </li>
            <li>
              <div class="liInner">
                <p class="tit"><span>テキストが入ります<br>テキストが入ります<br>テキストが入ります</span></p>
              </div>
            </li>
          </ul>
        </div>

 

CSS編

.listBlock .itemList {
  display: flex;
  flex-wrap: wrap;
  margin: 0 -20px;
}

.listBlock .itemList > li {
  width: 25%;
  padding: 0 20px;
  box-sizing: border-box;
  text-align: center;
}

.listBlock .itemList .liInner {
  height: 100%; //箱の高さ合わせる
  box-sizing: border-box; //箱の高さ合わせる

  background-color: #b9e3f9;
  padding: 35px 15px;
}

.listBlock .itemList .tit {
  display: flex;
  align-items: center;
  justify-content: center;

  font-weight: bold;
  line-height: 1.4;
  font-size: 1.6rem;

  min-height: calc(2 * 1.4em); //ポイント
}

ちなみに、ブラウザ上で4つ並べてみたらこんな感じです↓


ちなみに背景を見てもらうとわかるのですが、箱自体の高さも合わせています。

簡単に説明しますね^^

 

1.まず、【.tit】の高さを最低2文字分、と指定する

ポイントは【.tit】に指定している【min-height: calc(2 * 1.4em);】です!

(2 * 1.4em)部分はどういう計算なのかというと、1emは1文字の高さですが行間分(line-height: 1.4;)を考慮し結果1文字分を1.4emとしています。
そして今回は最低2行分の高さにしたいので2を掛けています。

 

2.【.tit】の縦軸をセンター寄りにする

【.tit】にflexを指定し、縦横センター寄りの設定にします。
この時テキストを<span>で囲っておくと中身が横並びにならずに済みます^^←何気に重要!

 

この2点を押さえておけば応用も効くと思います!
では今日はここまで〜〜

コメント

タイトルとURLをコピーしました