我想将项目放置在flexbox中,且宽度相同。
在flexbox中,我有一个searchsvg,输入字段和一些文本的div。我希望他们每个人都可以根据flexbox的宽度自行选择相等的宽度。我不想手动提供每个项目的宽度。我尝试使用justify-content: space-evenly
。这样,输入字段将比其余字段占用更多的宽度。
如何避免呢?下面是代码:
.wrapper {
display: flex;
flex-grow: 1;
}
.items_container {
position: relative;
width: 40px;
height: 40px;
top: 16px;
margin-left: 16px;
padding-left: 5px;
display: flex;
align-items: center;
justify-content: space-evenly;
}
@media (min-width: 300px) {
.items_container.expanded {
width: 50%;
}
}
.items_container.expanded .search_input_field {
display: flex;
align-items: center;
}
<div class="wrapper">
<div class="items_container expanded">
<div class="search_input_field">
<div>
<Svgsearch/>
</div>
<input type="text" placeholder="input" />
</div>
<div>dropdown to be added</div>
</div>
答案 0 :(得分:0)
我将flex-grow: 1
从放置位置移开了,因为它什么也没做。这是影响子代的规则。因此,我将其移至影响flex父级.wrapper
的所有直接子级。
.wrapper {
display: flex;
/* flex-grow: 1; <-- moved below */
& > * {
flex-grow: 1;
}
}
答案 1 :(得分:0)
.child
元素应该平等地grow
而不是shrink
.parent {
display: flex;
}
.child {
flex: 1 0 0;
}
/* ignore */
.child {
padding: 5px;
height: 50px;
background: lightcoral;
margin: 2px;
text-align: center;
}
<div class="parent">
<div class="child">1</div>
<div class="child">2</div>
<div class="child">3</div>
</div>