javascript - 为什么将 display flex 添加到父级不允许我设置 flex
问题描述
我正在编写 react 组件,现在尝试使用 index.css 设置样式(我知道这不是正确的方法)。所以这里是结构
此外,我想在总共 24 个中显示一定数量的 productContainer 组件(让我们说 3 个)。现在所有内容都显示在同一行中。我尝试了 flex-wrap 但它不能正常工作。Width 也将所有内容都推送到同一行。
我知道我们可以通过使用内联块或网格来修复它,但我想要一种 flexbox 方式来做同样的事情。
CSS:
.productlist {
display: flex;
}
.productContainer {
padding: 10px;
width: 340px;
display: flex;
flex-direction: column;
align-items: flex-start;
justify-items: flex-start;
border-style: ridge;
border-color: black;
border-width: 1px;
}
.item {
width: 100px;
word-wrap: break-word;
}
解决方案
你需要两者wrap
并basis
达到你想要的结果。flex-basis
相当于width
in flex,并且flex-wrap
会让元素不溢出。不指定flex-grow
将保持最后一个不完全适合行的元素的大小相同(如果你有奇怪的元素,就像在这个例子中一样)。
.productlist {
display: flex;
flex-wrap: wrap; /* wrap items in container */
}
.productContainer {
padding: 10px;
box-sizing: border-box;
flex-basis: 33%; /* 3 containers per row */
display: flex;
flex-direction: column;
align-items: flex-start;
border: 1px ridge black;
}
<div class="productlist">
<div class="productContainer">
<div class="item title">Title-1</div>
<div class="item price">Price</div>
<div class="item company">Company 1</div>
</div>
<div class="productContainer">
<div class="item title">Title-2</div>
<div class="item price">Price</div>
<div class="item company">Company 2</div>
</div>
<div class="productContainer">
<div class="item title">Title-3</div>
<div class="item price">Price</div>
<div class="item company">Company 3</div>
</div>
<div class="productContainer">
<div class="item title">Title-4</div>
<div class="item price">Price</div>
<div class="item company">Company 4</div>
</div>
</div>
推荐阅读
- android - 尝试显示带有光标窗口空异常错误的 listViews 时出错
- javascript - Nodejs Express 将逻辑从控制器外包到服务
- algorithm - 我怎么知道使用数学公式在半欧拉图或欧拉图上抬起笔的最少次数?
- javafx - 设置为在命令行中使用 JAVAFX
- javascript - 尝试使用 template7 文字中的属性名称中的空格访问和对象
- angular - 如何编写两个测试用例在 Jasmine 中切换布尔值
- python - 内存有效的平均成对距离
- react-native - 如何在屏幕顶部呈现模式
- amazon-web-services - 如何将 CodeBuild 与不同帐户中的 CodeCommit 存储库链接?
- mdriven - “sqlLike”和“sqlLikeCaseInsensitive”转义字符?