我正在尝试在我的网站上创建一个过滤器部分,内容都是动态生成的(因此我无法向其添加额外的父母),我们的styleguide使用Flex创建了它们项目。我想在大多数情况下保留此功能。
我希望我的3个flex项目具有max-width
并向左漂浮,而我的非弹性物品则右漂浮在整体容器中,该容器设置为1080px
的最大宽度,例如:
Option 1 Option 2 Option 3 Non-flex Item
我尝试设置flex-align值并遵循此答案,但这似乎对此不起作用。
截至目前,这是我正在使用的代码:
<ul class="container">
<li class="child">One</li>
<li class="child">Three</li>
<li class="child">Three</li>
<div class="non-flex">
I'm not a flex item
</div>
</ul>
.container {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
-ms-flex-direction: row;
flex-direction: row;
-webkit-box-pack: justify;
-ms-flex-pack: justify;
justify-content: space-between;
position: relative;
max-width: 1080px;
margin: 0 auto;
padding: 0 20px;
box-sizing: content-box;
}
.child {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
-ms-flex-direction: row;
flex-direction: row;
-webkit-box-pack: justify;
-ms-flex-pack: justify;
justify-content: space-between;
position: relative;
}
我还为大家玩耍。
我将在.child
项目(或创建它们之间距离的左/右填充)和margin-left: auto
上应用width
或min-width
其他:
https://jsfiddle.net/6vwny6bz/2/
.container {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
-ms-flex-direction: row;
flex-direction: row;
-webkit-box-pack: justify;
-ms-flex-pack: justify;
justify-content: space-between;
position: relative;
max-width: 1080px;
margin: 0 auto;
padding: 0 20px;
box-sizing: content-box;
}
.child {
list-style: none;
min-width: 80px;
padding: 10px 0;
}
.non-flex {
margin-left: auto;
padding: 10px 0;
}
<ul class="container">
<li class="child">One</li>
<li class="child">Three</li>
<li class="child">Three</li>
<div class="non-flex">
I'm not a flex item
</div>
</ul>
一个简单的解决方案是设置边距:auto:
margin-right: auto;
您可以使用:
.non-flex{
margin-left: 50%;
}
在前3个元素和非flex One