実現したいこと
CSSで要素を2列に並べるためにdisplay: grid;
を採用し、2列とも常に同じ幅にしたいです。
前提
- CSSのみで完結させたいです。(JavaScriptや
contenteditable
の利用は考えていません。) display: flex;
ではありません。- 画面幅と要素幅は可変的です。
- 該当のソースコードの
.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/ツールのバージョンなど)
特にございません。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/10/30 13:56
2023/10/31 02:07
2023/10/31 04:39