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

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

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

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

HTML

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

CSS

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

Q&A

2回答

161閲覧

グリッドレイアウトで余分な余白ができてしまう

iceclaimer

総合スコア4

HTML5

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

HTML

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

CSS

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

0グッド

0クリップ

投稿2024/11/12 01:42

実現したいこと

左カラムに<h><p>、右カラムに画像を配置するグリッドレイアウトをしています。
この時、左カラムの要素の文字量だけの高さにしてgapを適用したいです。

発生している問題・分からないこと

下記コードでは本来、<h3>は1行分だけの高さを想定していますが、間を埋めるように高さに余白ができてしまっています。
これを、本来は1行分の高さのままgapを適用するようにしたいです。
ご教授お願いします。

該当のソースコード

html

1<div class="container"> 2 <div class="grid__wrapper"> 3 <h3 class="grid__ttl">ダミーダミーダミーダミーダミー</h3> 4 <p class="grid__txt">Lorem ipsum dolor sit amet consectetur adipisicing elit. Eaque aliquid in dignissimos. Quibusdam iste autem, repellendus corporis laboriosam ducimus repudiandae at repellat quidem ipsum, suscipit a veritatis beatae exercitationem fuga.</p> 5 <div class="grid__img"><img src="https://picsum.photos/id/237/400/400"</div> 6 </div> 7</div>

css

1p,h3{ 2 padding:0; margin:0; 3} 4.container{ 5 width:900px; 6 height:100vh; 7 background:#eee; 8} 9 10.grid__wrapper{ 11 display:grid; 12 grid-template-columns: repeat(2, auto); 13 grid-template-rows: repeat(2, auto); 14 grid-auto-flow: column; 15 padding:32px 0 40px; 16 background:green; 17 gap:32px 20px; 18/* align-items:start; */ 19} 20 21 22.grid__ttl{ 23 background:red; 24} 25 26.grid__txt{ 27 background:blue; 28} 29.grid__img{ 30 grid-row: span 2; 31}

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

align-itemsプロパティを使えば要素の文字量に応じた高さになりますが、今度はgapがその分だけ埋めてしまうようです。

補足

可能であればhtml構造は変えないままCSSのみで実現したいです。

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

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

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

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

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

iceclaimer

2024/11/12 01:50

また、<h>タグに限らず、<p>タグ内の文字量に応じても同様の処理ができるようにしたいです
yambejp

2024/11/12 02:27

グリッドの要素の高さを優先すればがgapが想定と違ってきたりしませんか? もうすこし仕様を固めたほうがよいと思います
juner

2024/11/12 06:31

auto だと 余白が作れない場合にそれだけ伸びてしまう為、正攻法だと 左のカラムを 縦方向 flex にした方がよさそうな気がしますね。もしくは余白用の cell を用意して それに受け持たせるか
guest

回答2

0

auto で高さを指定するのではなくて、 余白を 1fr で指定したらいいのではないでしょうか?

css

1.grid__wrapper { 2 grid-template-rows: min-content 1fr; 3}

イメージ説明

参考

追伸

もしも、p も余白空けたいならこうとか?

css

1.grid__wrapper { 2 grid-template-rows: repeat(3, auto); 3} 4.grid__img { 5 grid-row: span 3; 6}

イメージ説明

参考

投稿2024/11/12 02:33

編集2024/11/15 00:37
juner

総合スコア435

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

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

0

grid__ttlクラスにheightを指定し、grid__wrapperクラスのgapを調整してみては?

css

1.grid__ttl{ 2 height:fit-content; 3} 4.grid__wrapper{ 5 gap: 20px; 6}

投稿2024/11/12 02:05

yambejp

総合スコア116441

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問