为什么min-width:0对我的flex元素不起作用?

伊娃

我读过,min-widthauto在Flexbox的面向Flex项。这意味着widthflex-item取决于其内部的内容(flex-item不能小于内部最大的单词,当然flex-item不能小于具有固定宽度的内部元素)。

这意味着我可以为我的flex-item建立,min-width: 0并且我的元素将像以前一样继续缩小,但事实并非如此。为什么?我怎么了?

我的代码:

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

.parent {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: center;
  border: 3px solid red;
}

.second_group_block, .first_group_block {
  display: flex;
  min-width: 0;
  border: 3px solid green;
}

.first_group_block {
  margin-bottom: 10px;
}

.block {
  min-width: 0;
  width: 200px;
  height: 200px;
  background: grey;
  margin-right: 10px;
}

.block:nth-child(3) {
  margin: 0;
}

.block:nth-child(6) {
  margin: 0;
}
<div class="parent">
  <div class="first_group_block">
    <div class="block"></div>
    <div class="block"></div>
    <div class="block"></div>
  </div>
  <div class="second_group_block">
    <div class="block"></div>
    <div class="block"></div>
    <div class="block"></div>
  </div>
</div>

PS在研究了此示例之后,我发现也许我之前描述的此行为的原因是其弯曲方向以及建立主轴和横轴的属性。您可以在这里查看第二个示例

为什么会这样工作?

陪同Afif

您的所有期望都是正确的,但您缺少一件事。.parent元素的方向是第一列,因此最小宽度对子元素没有影响,因为在横轴上没有溢出限制(也没有收缩效果)。要添加此类限制,只需使用max-width:100%

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

.parent {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: center;
  border: 3px solid red;
}

.second_group_block, .first_group_block {
  display: flex;
  min-width: 0;
  max-width:100%; /* here */
  border: 3px solid green;
}

.first_group_block {
  margin-bottom: 10px;
}

.block {
  min-width: 0;
  width: 200px;
  height: 200px;
  background: grey;
  margin-right: 10px;
}

.block:nth-child(3) {
  margin: 0;
}

.block:nth-child(6) {
  margin: 0;
}
<div class="parent">
  <div class="first_group_block">
    <div class="block"></div>
    <div class="block"></div>
    <div class="block"></div>
  </div>
  <div class="second_group_block">
    <div class="block"></div>
    <div class="block"></div>
    <div class="block"></div>
  </div>
</div>

值得注意的是,保持拉伸对齐也会产生相同的结果:

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

.parent {
  display: flex;
  min-width: 0;
  flex-direction: column;
  /*align-items: center; removed*/
  border: 3px solid red;
}

.second_group_block, .first_group_block {
  display: flex;
  min-width: 0;
  border: 3px solid green;
  justify-content:center;
}

.first_group_block {
  margin-bottom: 10px;
}

.block {
  min-width: 0;
  width: 200px;
  height: 200px;
  background: grey;
  margin-right: 10px;
}

.block:nth-child(3) {
  margin: 0;
}

.block:nth-child(6) {
  margin: 0;
}
<div class="parent">
  <div class="first_group_block">
    <div class="block"></div>
    <div class="block"></div>
    <div class="block"></div>
  </div>
  <div class="second_group_block">
    <div class="block"></div>
    <div class="block"></div>
    <div class="block"></div>
  </div>
</div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我的:: before伪元素不起作用?

来自分类Dev

为什么Zend DateTime元素不起作用?

来自分类Dev

为什么删除这样的子元素不起作用?

来自分类Dev

为什么我的同位素不起作用?

来自分类Dev

pub生成后,聚合物元素不起作用-我忘记了什么吗?

来自分类Dev

为什么Prolog中的min()函数不起作用?

来自分类Dev

为什么从Angular服务中的对象中删除此元素不起作用?

来自分类Dev

为什么第一个元素不起作用?

来自分类Dev

为什么-webkit-filter对于嵌套元素不起作用?

来自分类Dev

为什么基于单选按钮的功能隐藏/显示元素不起作用?

来自分类Dev

为什么jquery对Ajax成功创建的新元素不起作用?

来自分类Dev

为什么 CSS transition-duration 对子元素不起作用?

来自分类Dev

为什么宽度:0 不起作用

来自分类Dev

为什么svg <use xlink:href =“#” />引用具有剪切路径的元素不起作用?

来自分类Dev

为什么我的printf不起作用?

来自分类Dev

为什么我的列表不起作用?

来自分类Dev

为什么我的for循环不起作用?

来自分类Dev

为什么我的代码不起作用?

来自分类Dev

为什么getchar()对我不起作用?

来自分类Dev

为什么我的排序不起作用?

来自分类Dev

为什么我的递归不起作用?

来自分类Dev

为什么我的线程不起作用?

来自分类Dev

为什么我的ItemListener不起作用?

来自分类Dev

为什么我的OpenGL不起作用?

来自分类Dev

为什么我的if(-f)不起作用?

来自分类Dev

为什么我的测试不起作用?

来自分类Dev

为什么我的阵列不起作用?

来自分类Dev

为什么我的lambda不起作用?

来自分类Dev

为什么我的setOnKeyListener()不起作用?

Related 相关文章

热门标签

归档