👻
input 要素に flex-shrink が効かないときの対処法
以下のリンクを参考に type="number"
の input 要素に size="1"
を指定しても、flex-shrink
が効かなかったため、width: 0
を指定したら解決した。(Chrome 110.0.5481.100 で再現)
FireFox の場合は size="1"
の指定でも対処可能。
<label class="wrapper">
<div class="left">ラベル</div>
<input type="text" />
</span>
<style>
.wrapper {
width: 160px;
padding: 20px;
box-shadow: 0 1px 10px rgba(0,0,0,0.1);
display: flex;
gap: 20px;
}
.left {
width: 3em;
flex-shrink: 0;
flex-grow: 0;
}
input[type="text"] {
width: 0;
flex-shrink: 1;
flex-grow: 1;
}
</style>
width="0"
指定前
width="0"
指定後
Discussion