【发布时间】:2020-10-09 04:30:15
【问题描述】:
我尝试通过使用包装的 flexbox 将 texarea 包装到“第二列”中来设置多列联系表单。我希望 textarea 与文本输入的宽度相同。实际上,文本输入(第一列)比文本区域(第二列)宽。在我在 codepen 上创建的示例中,不同之处在于,例如12 像素。
在下面的示例中,文本区域比字段集宽。在这个例子中,texarea(和提交按钮)比文本输入宽 10px,分别是字段集。为什么一个元素被包裹在 flexbox 中时比另一个更宽?
在代码中单个元素不能高于整个弹性盒的max-height。
* {
box-sizing: border-box;
}
form {
display: flex;
flex-flow: column wrap;
max-height: 116px;
}
input[type=text] {
min-width: 0;
padding: 0;
margin: 0;
min-width: 0;
margin-bottom: 1em;
display: block;
width: 100%
}
fieldset {
padding: 0;
margin: 0;
}
textarea {
min-height: 50px;
max-height: 84px;
min-width: 0;
resize: vertical;
}
textarea, input[type="submit"] {
padding: 0;
margin: 0;
}
<form action="/doit" method="post">
<fieldset>
<input type="text" value="Text">
<input type="text" value="Text">
<input type="text" value="Text">
<input type="text" value="Text">
</fieldset>
<textarea>I am wider than the fieldset.</textarea>
<input type="submit" />
</form>
我在 Safari (Mojave) 和 Chrome 85 中尝试过。
谁能告诉我是什么导致了这种行为?
【问题讨论】:
-
你试过在
input和textareamedium.com/developedbyjohn/equal-width-flex-items-a5ba1bfacb77上使用flex-grow:1 -
您希望它们彼此相邻吗?因为它在你的 codepen 链接中是这样的
-
@Awais 据我所知,如果我不想实现不同的 flow-grow 行为,我不必提供任何 flex-grow。顺便说一句,是的,我已经尝试过了。谢谢! :)
-
@ModusTollens 很抱歉打扰您。我的意思是现在伤害。当我想在这里回答我的问题时,有人告诉我我应该更新我原来的问题,而不是回答我自己的问题。 “后续问题”是指一个全新的问题?感谢您的帮助。
-
@ModusTollens 是的,我已经注意到,十多年来,除了阅读问题和相应的答案之外,提出问题完全是另一种野兽。谢谢你的支持。 :)