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

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

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

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

Q&A

解決済

1回答

938閲覧

CSSのgridで一方の幅だけ縮んでしまいます

origa3

総合スコア22

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

0グッド

0クリップ

投稿2023/10/30 09:29

編集2023/10/30 10:48

実現したいこと

CSSで要素を2列に並べるためにdisplay: grid;を採用し、2列とも常に同じ幅にしたいです。

前提

  1. CSSのみで完結させたいです。(JavaScriptやcontenteditableの利用は考えていません。)
  2. display: flex;ではありません。
  3. 画面幅と要素幅は可変的です。
  4. 該当のソースコードの.outerは実際にはtd直下要素です。(つまりtable内のあるセルの中の要素.boxを等幅で2列に並べたいということです。)

発生している問題

該当のソースコードでは、画面幅の縮小に応じて、なぜか右側の列の幅だけが縮んでしまいます。

下図の緑の幅だけ縮むということです。
イメージ説明

該当のソースコード

html

1<div class="outer"> 2 <div class="box"> 3 <div class="name">aaa</div> 4 </div> 5 6 <div class="box"> 7 <div class="name">bbb</div> 8 </div> 9 10 <div class="box"> 11 <div class="name">ccc</div> 12 </div> 13 14 <div class="box"> 15 <div class="name">ddd</div> 16 </div> 17 18 <div class="box"> 19 <div class="name"> 20 <input type="text" placeholder="入力"> 21 </div> 22 </div> 23</div>

css

1.outer { 2 display: grid; 3 grid-template-columns: 1fr 1fr; 4 grid-gap: 5px; 5} 6.name { 7 background: skyblue; 8}

試したこと

input要素を削除、またはdisplay: none;することで解消しました。
そこでinput要素にwidth: auto;max-width: 100%;を指定しましたが解消できませんでした。

原因と対策を知りたいです。
よろしくお願い致します。

補足情報(FW/ツールのバージョンなど)

特にございません。

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

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

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

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

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

guest

回答1

0

ベストアンサー

下記でどうでしょう。

css

1.name input[type="text"] { 2 max-width: 15em; 3 width: 100%; 4 box-sizing: border-box; 5}

投稿2023/10/30 13:45

hatena19

総合スコア34343

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

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

origa3

2023/10/30 13:56

ありがとうございます。ばっちりでした。それにしても`box-sizing: border-box;`で解消するロジックがわからないのですが、もしよろしければ教えていただけませんでしょうか。
hatena19

2023/10/31 02:07

画面幅に応じてテキストボックスが拡縮するのは、width: 100%; を設定しているからです。 ただし、既定では幅はpaddingとborderを含めずに計算しますので、paddingとborderの分親要素からはみ出します。それを防ぐために、box-sizing: border-box; でpaddingとborderを含めて計算するように設定しています。
origa3

2023/10/31 04:39

ご返信ありがとうございます。大変勉強になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問