実現したいこと
CSSで要素を2列に並べるためにdisplay: grid;
を採用し、2列とも常に同じ幅にしたいです。
前提
- CSSのみで完結させたいです。
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/ツールのバージョンなど)
特にございません。
0 コメント