質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

2回答

858閲覧

flexboxを使ってカードを作りたいが、カードの中の要素の高さが揃わない

teratail314

総合スコア2

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2021/03/23 03:24

編集2021/03/23 03:58

前提・実現したいこと

HTML,CSSを用いて、左右の高さが揃ったカードを作りたいと考えてます。
flexboxを使って親要素の高さは揃うのですが、子要素のタイトルや、その説明の高さが合いません。
どのようにすれば、親要素以外の要素(タイトル、説明)の高さも揃うのでしょうか。

該当のソースコード

HTML

1<ul class="plan-list container" > 2 <li class="plan-list-item "> 3 <div class="plan-img"><img src="./img/plan1.png" alt=""></div> 4 <div class="plan-text"> 5 <h4 class="plan-title">teratail(架空サイト)</h4> 6 <p class="plan-naiyou">flexboxを使ってカードを作りたいが、カードの中の要素の高さが揃わない</p> 7 </div> 8 <p class="primary"><a href="飛ばしたいURL">サイトを見る</a></p> 9 </li> 10 <li class="plan-list-item" > 11 <div class="plan-img"><img src="./img/plan2.png" alt=""></div> 12 <div class="plan-text"> 13 <h4 class="plan-title">teratail teratail teratai lteratail teratail(架空サイト)</h4> 14 <p>HTML,CSSを用いて、左右の高さが揃ったカードを作りたいと考えてます。 15flexboxを使って親要素の高さは揃うのですが、子要素のタイトルや、その説明の高さが合いません。 16どのようにすれば、親要素以外の要素(タイトル、説明)の高さも揃うのでしょうか。</p> 17 </div> 18 <p class="primary"><a href="飛ばしたいURL">サイトを見る</a></p> 19 </li> 20 <li class="plan-list-item"> 21 <div class="plan-img"><img src="./img/plan3.png" alt=""></div> 22 <div class="plan-text"> 23 <h4 class="plan-title">teratailteratailteratail(架空サイト)</h4> 24 <p>子要素にも親要素と同様にdisplay:flex;を適用したところ特に変化は見られなかった。</p> 25 </div> 26 <p class="primary"><a href="飛ばしたいURL">サイトを見る</a></p> 27 </li> 28 </ul>

CSS

1.plan-title{ 2 margin-top: 3rem; 3 margin-bottom: 3rem; 4 font-size: 1.7rem; 5 text-align: center; 6 font-weight: bold; 7} 8#works ul{ 9 width:100%; 10 display:flex; 11 flex-wrap:wrap; 12 margin-top: 4.6rem; 13 justify-content: space-between; 14} 15#works ul li { 16 width: 31%; 17} 18.plan-naiyou{ 19 display: flex; 20}

試したこと

子要素にも親要素と同様にdisplay:flex;を適用したところ特に変化は見られなかった。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

固定値で高さを設定すれば揃いますが、内容のテキスト量が変わりますので、それではうまくないですよね。その辺をどのようにするか次第ですね。

例えば、「サイトを見る」のリンクのみカードの最下部に配置するということにするなら、position: absolute;で最下部に配置すればいいでしょう。

css

1#works ul li { 2 width: 31%; 3 padding-bottom: 1.5em; /*「サイトを見る」リンク用の余白 */ 4 position: relative; 5} 6.plan-img img { 7 width: 100%; /* 画像をカード幅に合わせる */ 8} 9.primary { 10 position: absolute; 11 bottom: 5px; 12 left: 5px; 13}

投稿2021/03/23 04:11

hatena19

総合スコア34075

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

teratail314

2021/03/23 05:49

回答ありがとうございます。position relative ,absoluteを使うことでボタンの位置を調整することができました。ありがとうございます。もう一点質問があります。ボタンを各々のカードの真ん中に配置したいのですが、margin: 0 auto;だとボタンがカードの外に出てしまいます。また、padding-left:20%; padding-right:20%とすると、レスポンシブデザインの時、幅が固定されてしまって画面幅を小さくしたときにボタンの位置が崩れてしまいます。 そのようになる原因と解決策を教えていただけないでしょうか。
hatena19

2021/03/23 05:55

ボタンとは、<p class="primary">のことですか。 .primary { position: absolute; bottom: 3px; left: 50%; transform: translatex(-50%); }
teratail314

2021/03/23 07:16

回答が遅れてしまい申し訳ありません。praimaryクラスのボタンが真ん中に配置されました!ありがとうございました。
guest

0

ul liにグリッドレイアウトを適用してあげるとか?
下のコードはサンプルです。そのままでは使えないので、plan-textのところを工夫してみてくださいね。

CSS

1ul li { 2 display: grid; 3 grid-template-rows: 0.5fr 1fr 0.1fr; 4 grid-gap: 10px; 5}

投稿2021/03/23 04:29

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

teratail314

2021/03/23 05:53

回答ありがとうございます。申し訳ありませんが、グリッドレイアウトを勉強しておらず、記載していただいた内容を理解することができませんでした。私の勉強不足でしたので、グリッドレイアウトの勉強をした後にもう一度回答していただいたコードで確認してみたいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問