Input 为什么不尊重 flex?

use*_*076 3 css html-input flexbox

我注意到 'input' 元素不会拉伸或收缩以填充 flex 容器。有谁知道为什么以及是否有解决方案?

下面的示例显示了在 Div 元素(正确拉伸)上使用的容器类c。和单个类e,用于右对齐的固定长度端。div 行按预期拉伸和收缩,输入行没有。

div.c {
  display: flex;
  flex-direction: row;
  align-content: stretch;
}

div.d {
  flex: 1;
}

div.e {
  display: inline-block;
  flex: 0 0 30px;
  background-color: red;
}
Run Code Online (Sandbox Code Playgroud)
<div class='c'>
  <div class='d'>A</div>
  <div class='d'>B</div>
  <div class='d'>C</div>
  <div class='d'>D</div>
  <div class='e'>E</div>
</div>

<div class='c'>
  <input class='d'></input>
  <input class='d'></input>
  <input class='d'></input>
  <input class='d'></input>
  <div class='e'></div>
</div>
Run Code Online (Sandbox Code Playgroud)

请注意,我知道此链接:

输入/按钮元素不尊重 flex-grow

但是使用 min-width: 0; box-sizing: 边框框;对我没有影响。

Mic*_*ker 5

因为您指定了div.dnotinput.ddiv .dor just .d。此外,无需关闭input标签。

div.c {
  display: flex;
  flex-direction: row;
  align-content: stretch;
}

.d {
  flex: 1;
}

div.e {
  display: inline-block;
  flex: 0 0 30px;
  background-color: red;
}
Run Code Online (Sandbox Code Playgroud)
<div class='c'>
  <div class='d'>A</div>
  <div class='d'>B</div>
  <div class='d'>C</div>
  <div class='d'>D</div>
  <div class='e'>E</div>
</div>

<div class='c'>
  <input class='d'>
  <input class='d'>
  <input class='d'>
  <input class='d'>
  <div class='e'></div>
</div>
Run Code Online (Sandbox Code Playgroud)