This question already has answers here:
input / button elements not shrinking in a flex container
(2个答案)
2年前关闭。
好像我不明白flexbox正确。
但是我认为flexboxitem中div的with被忽略了。
就像这个小提琴一样:https://jsfiddle.net/34f9awsk/6/
CSS:
HTML:
你能帮我解决吗?
谢谢!
(2个答案)
2年前关闭。
好像我不明白flexbox正确。
但是我认为flexboxitem中div的with被忽略了。
就像这个小提琴一样:https://jsfiddle.net/34f9awsk/6/
CSS:
.wrapper {
width: 200px;
display: -webkit-flex;
display: flex;
-webkit-align-items: center;
align-items: center;
-webkit-justify-content: center;
justify-content: center;
flex-direction: row;
}
.ele {
display: -webkit-flex;
display: flex;
-webkit-align-items: center;
align-items: center;
-webkit-justify-content: center;
justify-content: center;
flex-direction: row;
flex: 3;
}
.ele1 {
flex: 1;
}
.ele input {
display: inline;
max-width: 100%;
}
HTML:
<div class="wrapper">
<div class="ele ele3" style="background-color: red;">
<input type="number" size="4" value="9999" />
</div>
<div class="ele ele1" style="background-color: green;">
2
</div>
<div class="ele ele3" style="background-color: yellow;">
<input type="number" size="4" value="9999" />
</div>
</div>
你能帮我解决吗?
谢谢!
最佳答案
Flexbox项的min-width
默认为auto
,这表示它们不会缩小到其内容宽度以下。
在这种情况下,您的input
元素在用户代理样式表中设置了默认宽度,然后指定了伸缩项目的大小。
给ele
一个min-width: 0
,它将按预期工作。
.wrapper {
width: 200px;
display: -webkit-flex;
display: flex;
-webkit-align-items: center;
align-items: center;
-webkit-justify-content: center;
justify-content: center;
flex-direction: row;
}
.ele {
display: -webkit-flex;
display: flex;
-webkit-align-items: center;
align-items: center;
-webkit-justify-content: center;
justify-content: center;
flex-direction: row;
flex: 3;
min-width: 0;
}
.ele1 {
flex: 1;
}
.ele input {
display: inline;
max-width: 100%;
}
<div class="wrapper">
<div class="ele ele3" style="background-color: red;">
<input type="number" value="9999" />
</div>
<div class="ele ele1" style="background-color: green;">
2
</div>
<div class="ele ele3" style="background-color: yellow;">
<input type="number" value="9999" />
</div>
</div>