如何在Flexbox内部输入可用空间?

时间:2018-03-03 15:36:26

标签: html css css3 flexbox

我正在尝试获取输入以获取此flexbox中的所有可用空间,但不会超出Flexbox的宽度。

<div>
   <input type="number"/>
   <button>OK</button>
</div>

div
{
  display:flex;
  width:100px;
  position:relative;
  border:solid 1px #000;
}

input
{
  flex:1;
  display:block;
  border:none;
}

问题是输入溢出了包含的flexbox div。如果我将输入的宽度设置为100%,它似乎在Chrome中有效但在FF中失败。该怎么做?

https://jsfiddle.net/y7d7Ldur/

2 个答案:

答案 0 :(得分:5)

这是因为输入的默认宽度大于100px。将min-width:0添加到输入中以解决此问题:

&#13;
&#13;
div
{
  display:flex;
  width:100px;
  position:relative;
  border:solid 1px #000;
}

input
{
  flex:1;
  display:block;
  border:none;
  min-width:0;
} 
&#13;
<div>
   <input type="number">
   <button>OK</button>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:-2)

你不需要把它变成弹性盒子。

你可以这样做:

<div>
<input></input>
</div>

<style>
div{
width: 100px;
}
input{
min-width:100%;
margin: 0px;
}
</style>