为Flex项目设置最大宽度



我正在尝试在我的网站上创建一个过滤器部分,内容都是动态生成的(因此我无法向其添加额外的父母),我们的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上应用widthmin-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

之间创建更多空间

最新更新