首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >flex-basis未按预期工作

flex-basis未按预期工作
EN

Stack Overflow用户
提问于 2015-01-25 00:11:56
回答 5查看 22.8K关注 0票数 11

据我所知,flex-basis负责决定元素的大小。

在下面的示例中,我尝试将所有框的大小相等地调整为100px。仅仅使用flex-basis并不能达到这个效果。

代码语言:javascript
复制
.each_box {
  -webkit-flex-grow: 0;
  -webkit-flex-shrink: 0;
  -webkit-flex-basis: 100px;

  flex-grow: 0;
  flex-shrink: 0;
  flex-basis: 100px;

  background-color: yellow;
  height: 50px;

  border: 1px solid black;

}

Plnkr地址:http://plnkr.co/edit/LvrrzHWIw1tPGwK05bCU

EN

回答 5

Stack Overflow用户

发布于 2019-01-02 18:56:30

我发现我不得不在Chrome中使用min-width和flex-basis。我不确定我是否有其他问题导致了这一点。

代码语言:javascript
复制
.flex-container {
  display: flex;
  width: 100%;
}

.flex-child {
  flex-basis: 50%;
  min-width: 50%;
}
票数 14
EN

Stack Overflow用户

发布于 2015-01-27 04:48:18

flex-growflex-shrinkflex-basis属性只对flex容器中的元素有效--即其父元素具有display:flex的元素。

您需要将flex div直接放在display:flex元素中,以便它们支持与each_box相关的属性。

具体来说,您的标记如下所示(在Firefox中右击其中一个黄色div+点击"inspect“):

代码语言:javascript
复制
<div class="container">
  <!-- ngRepeat: stock in stockList -->
  <div class="ng-scope" ng-repeat="stock in stockList">
    <div class="each_box ng-binding">
    0-FB/100

您已经将container样式化为display:flex,但这对您的each_box元素没有好处,因为它们是孙子元素,由display:block ng-scope与flex容器分开。

所以你要么需要去掉ng-scope包装器,要么让它也有display:flex

票数 5
EN

Stack Overflow用户

发布于 2020-05-27 03:50:50

还要确保添加:flex-wrap: wrap;,因为为了在一行中容纳所有内容而设置的默认值nowrap会影响元素的大小(例如: width、flex-Base.等)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28127423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档