【发布时间】:2020-07-01 12:59:29
【问题描述】:
这是我使用 flex 的第一步,我有以下代码:
body {
box-sizing: border-box;
margin: 0;
padding: 0;
font-size: 14px;
}
.flexbox {
display: flex;
width: 100%;
max-width: 1241px;
height: 30px;
}
label {
flex-basis: 0;
flex-grow: 5;
background-color: cyan;
}
input {
flex-basis: 0;
flex-grow: 13;
background-color: yellow;
margin: 0;
padding: 0;
border: 0;
}
div {
flex-basis: 0;
flex-grow: 6;
height: 10px;
background-color: red;
}
<div class="flexbox">
<label>width must = 258.54px</label>
<input type="text" value="width must = 672.20px">
<div>width must = 310.25px</div>
</div>
一切都按预期进行。但是,我需要将padding-left: 25px 添加到我的输入中,因为只有我这样做,flexbox 中元素的所有大小都会发生变化。如何添加此填充并同时保持尺寸(我的意思是将我的解决方案与 flex-grow 和 flex-basis 一起使用)?
这就是我拥有的padding:0:
这是我添加padding-left: 25px时所拥有的:
【问题讨论】:
-
如果你把输入类
padding:0改成padding-left:25px;不是你需要的结果吗? -
@SimoneRossaini,不,然后label、input和div的宽度变化
-
你说你需要固定宽度(在书面内容中),然后你使用
flex-grow和flex-basis: 0。那是行不通的。