【发布时间】:2018-12-10 22:23:07
【问题描述】:
我正在尝试使用 flexbox 来实现列布局,其中元素“浮动”到右侧。
类似这样的:
问题是,我无法更改 HTML,因为它是嵌入式表单,因此尝试通过纯 CSS 来实现。
到目前为止,我有这个:
.form {
display: flex;
flex-direction: column;
text-align: center;
}
.form-container {
display: flex;
flex-direction: column;
text-align: center;
justify-content: space-between;
}
.form-form {
width: 100%;
}
form {
display: flex;
justify-content: center;
}
fieldset {
border: 0;
}
textarea {
resize: none;
}
.form-columns-2 {
display: flex;
}
.form-columns-2 input:first-child {
margin-bottom: .5em
}
.form-columns-1 textarea {
height: 100%
}
.submit-wrapper{
flex-direction:column;
}
<div class="form">
<div class="form-container">
<div class="form-form">
<form>
<fieldset class="form-columns-2">
<input type="text" placeholder="test">
<input type="text" placeholder="test">
</fieldset>
<fieldset class="form-columns-2">
<input type="text" placeholder="test">
<input type="text" placeholder="test">
</fieldset>
<fieldset class="form-columns-1">
<textarea placeholder="test">Text</textarea>
</fieldset>
<div class="submit-wrapper">
<div class="actions">
<input type="submit" value="Submit">
</div>
</div>
</form>
</div>
</div>
</div>
编辑:
我还需要提交按钮来位于 textarea,但由于.submit-wrapper 是form 的直接子级,我可以看到解决此问题的唯一方法是添加@987654327 @到form。但是,这会将整个布局变成一列,这是我不想要的。
【问题讨论】:
-
必须是flexbox吗?你试过在这里使用 display: grid 吗?
-
另请注意,flexbox 和 fieldset 玩得不好。