Flex 不被输入尊重,为什么?

问题描述 投票:0回答:2

我注意到“输入”元素不会拉伸或收缩以填充弹性容器。有谁知道为什么以及是否有解决方案?

我下面的示例显示了在 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;
}
<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>

注意我知道这个链接:

输入/按钮元素不尊重弹性增长

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

css flexbox html-input
2个回答
5
投票

因为您指定了

div.d
,而不是
input.d
div .d
或只是
.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;
}
<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>


0
投票

有人知道为什么这不再有效吗?

© www.soinside.com 2019 - 2024. All rights reserved.