【CSS】Flexbox、flex-direction: column;とflex-grow: 1;を使ってボタンの位置を合わせる

【CSS】Flexbox、flex-direction: column;とflex-grow: 1;を使ってボタンの位置を合わせる
ボタンの位置を揃えたいですー
flex-directionとflex-growの組み合わせで揃いますよー

実装してみる

「詳しくはこちら」のボタンの位置を同じにしてみます。これ、なにげに難しいです。

ポイントは

flex-directionで整えて、flex-growで揃える。

See the Pen Flexbox – flex-direction: column;とflex-grow: 1;を使ってボタンの位置を合わせる by 125naroom (@125naroom) on CodePen.

HTMLとCSSはこちら

HTML

<div class="oneArea">
  <div class="oneBox">
    <p class="one_title">1</p>
    <div class="one_inner">
      <div class="one_img"><img src="https://125naroom.com/wp/wp-content/themes/design125naroom/img/kinoko_pan.png" alt=""></div>
      <p class="one_text">テキストテキストテキストテキストテキストテキストテキストテキストテキストテキスト<strong class="one_underline">テキストテキスト</strong>テキストテキストテキストテキストテキスト</p>
    </div>
    <div class="one_btn"><a href="https://125naroom.com/web/3833" target="_blank" class="btn"><span class="b__text">詳しくはこちら</span></a></div>
  </div>
  <div class="oneBox">
    <p class="one_title">2</p>
    <div class="one_inner">
      <div class="one_img"><img src="https://125naroom.com/wp/wp-content/themes/design125naroom/img/kinoko_pan.png" alt=""></div>
      <p class="one_text">テキストテキストテキストテキストテキストテキストテキストテキスト<strong class="one_underline">テキストテキスト</strong>テキストテキスト</p>
    </div>
    <div class="one_btn"><a href="https://125naroom.com/web/3833" target="_blank" class="btn"><span class="b__text">詳しくはこちら</span></a></div>
  </div>
  <div class="oneBox">
    <p class="one_title">3</p>
    <div class="one_inner">
      <div class="one_img"><img src="https://125naroom.com/wp/wp-content/themes/design125naroom/img/kinoko_pan.png" alt=""></div>
      <p class="one_text">テキストテキストテキスト<strong class="one_underline">テキストテキスト</strong>テキストテキストテキスト</p>
    </div>
    <div class="one_btn"><a href="https://125naroom.com/web/3833" target="_blank" class="btn"><span class="b__text">詳しくはこちら</span></a></div>
  </div>
</div>

CSS

.oneArea {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  max-width: 1024px;
  margin: 0 auto;
}
.oneArea .oneBox {
  width: 32%;
  padding: 20px;
  background: #fff;
  border: 2px solid #d47b70;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
}
.oneArea .oneBox p.one_title {
  font-size: 20px;
  text-align: center;
}
.oneArea .oneBox .one_inner {
  flex-grow: 1;
}
.oneArea .oneBox .one_inner .one_img {
  text-align: center;
  margin-bottom: 10px;
}
.oneArea .oneBox .one_inner .one_img img {
  max-width: 100%;
}
.oneArea .oneBox p.one_text {
  font-size: 14px;
}
.oneArea .oneBox .one_underline {
  background: rgba(0, 0, 0, 0) linear-gradient(transparent 60%, #ffe46e 0%) repeat scroll 0 0;
}
.oneArea .oneBox > *:not(:last-child) {
  margin-bottom: 15px;
}

制作メモ

flex-growは、IEでも問題ないですね。(2021年4月現在)

さいごに

おー、揃ったー
ちなみに代替案は、【jQuery】横並びの高さを揃える『matchHeight.js』ですー

関連記事

Author

デザコト

あ、いいな、と思うWebデザインを紹介しています。デザインの参考に。やさしいデザインが多いです。Webデザインギャラリー『デザインのこと - Web design gallery』を運営しています。

Googleさんの
おすすめ

4

/

14

2024

Googleさんの
おすすめ

4

/

14

2024

デザインの記事

TALKING CITY|柏の葉イノベーションフェス2023
5年経った無印良品窓の家
【jQuery】 ローディング、実装サンプル集