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

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

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

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

CSS

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

Q&A

解決済

2回答

507閲覧

Flexbox内の画像とテキストコンテンツの高さを同じにするには?

yunoco_55

総合スコア3

HTML

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

CSS

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

0グッド

1クリップ

投稿2021/05/19 11:31

いつもお世話になっております。

Flexbox内に画像とテキストを横並びにするように設定をし、
スマホで見ると、画像が縦に伸びてしまうため、[aline-items: flex-start]を入れることで解決しました。
しかし、こうするとテキストのコンテンツ高さが写真よりも小さくなってしまいます。

下記架空ページの「施工事例」「お客様の声」「イベント情報」の部分です。
架空ページ

HTML

1<div class="content jirei"> 2 <div class="text-item"> 3 <a href="#" class="btn"> 4 <span class="btn-text"> 5 <div> 6 <h3>施工事例</h3> 7 <div class="sub-text"> 8 <p>新築・リノベーション</p> 9 </div> 10 </div> 11 </span> 12 </a> 13 </div> 14 <img src="images/sekou-jirei.jpg"> 15 </div>

CSS

1.content { 2 display: flex; 3 align-items: flex-start; 4 border: 1px solid $border-color; 5 width: 100%; 6 height: auto; 7 margin-bottom: 24px; 8 9 .text-item { 10 width: 100%; 11 // height: 100%; 12 background-color: #fff; 13 display: flex; 14 align-items: flex-start; 15 16 17 a { 18 display: block; 19 width: 100%; 20 height: 100%; 21 text-decoration: none; 22 color: #000; 23 24 } 25 26 .btn { 27 position: relative; 28 height: 100%; 29 display: flex; 30 background: #fff; 31 32 } 33 34 .btn-text { 35 width: 100%; 36 height: 100%; 37 color: #000; 38 z-index: 10; 39 40 &::before { 41 content: ""; 42 position: absolute; 43 top: 0; 44 bottom: 0; 45 width: 0; 46 display: block; 47 background: #426256; 48 z-index: -1; 49 transition: .2s; 50 } 51 52 &:hover { 53 color: #fff; 54 55 &::before { 56 width: 100%; 57 } 58 } 59 } 60 61 .btn2 { 62 .btn-text { 63 &::before { 64 background: #263959; 65 } 66 } 67 68 } 69 70 h3 { 71 @include fontsize(18); 72 padding: 25px 0 60px 28px; 73 } 74 75 .sub-text { 76 @include fontsize(16); 77 text-align: center; 78 line-height: 1.5; 79 position: absolute; 80 top: 50%; 81 left: 50%; 82 -ms-transform: translate(-50%,-50%); 83 -webkit-transform: translate(-50%,-50%); 84 transform: translate(-50%,-50%); 85 margin:0; 86 padding:0; 87 } 88 } 89 90 img { 91 width: 50%; 92 height: auto; 93 } 94} 95

理想はこのように写真の高さと揃えたいです。

イメージ説明

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

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

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

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

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

guest

回答2

0

自己解決

解決いたしました。

最初、親要素の.contentにalign-items: flex-start;
にしていたため、子要素全体がflex-startになり、テキスト側がにも反映され
高さが合わなかったのですが、親要素ではなく子要素の方に指定をしたらできました。

子要素
.text-itemにdisplay: flex; *こうするとデフォルトのalign-self:strechが効く為画像の高さ幅と合う。
.imgにdisplay:flex/align-self: flex-start;

このように指定すると、うまくできました。

投稿2021/05/21 01:58

yunoco_55

総合スコア3

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

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

0

もう外側にdivのflexを追加してあげればいいんじゃないでしょうか。

**<div style="flex~">** <div class="text-item"> <a href="#" class="btn">       ---省略---- <img src="images/sekou-jirei.jpg"> </div> **</div>**

投稿2021/05/19 12:48

kabure_fs

総合スコア3

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

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

yunoco_55

2021/05/19 13:20

早速回答ありがとうございます。 教えていただいたように外側にdivを持ってきて、 display:flexにしたみたところ、テキストコンテンツの高さは画像と同じになったのですが、ipadやiphone実機で確認すると画像が縦に伸びてしまいます… 親要素 .content にdisplay: flex; 子要素 .text-itemにdisplay:flex / align-items: center のようにやるといいという記事は見たのですが、それもうまくいかず…
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問