html - 在减少容器宽度时将 Flex 项目换行到下一行 - CSS
问题描述
以下是我的代码,其中我希望 3 个.item
div 在一行上,下一个 3 在另一行上。下面提到的代码在普通屏幕上工作正常。但是,一旦我减小浏览器的大小,就会有 2 个项目显示在单行上。让我知道我在这里做错了什么,尽管我已将宽度添加为 33%,它应该可以容纳它,但我可能在这里遗漏了一些东西。
代码 -
:root { box-sizing: border-box; }
.flex { display: flex; width: 100%; flex-wrap: wrap; }
.item { flex: 0 1 33%; border: 1px solid red; }
<div class="flex">
<div class="item">Flex Item 1</div>
<div class="item">Flex Item 2</div>
<div class="item">Flex Item 3</div>
<div class="item">Flex Item 4</div>
<div class="item">Flex Item 5</div>
<div class="item">Flex Item 6</div>
</div>
解决方案
Amaury Hanser 是对box-sizing: border-box;
的 - 添加项目将解决您的问题。
不过,另一种方法是使用grid
而不是flex
. 这允许您使用1fr
单位,当将宽度平均分配到指定的数字列时,它会自动考虑填充和边框大小等因素。
.grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
}
.item {
border: 1px solid red;
}
<div class="grid">
<div class="item">Flex Item 1</div>
<div class="item">Flex Item 2</div>
<div class="item">Flex Item 3</div>
<div class="item">Flex Item 4</div>
<div class="item">Flex Item 5</div>
<div class="item">Flex Item 6</div>
</div>
推荐阅读
- woocommerce - Woocommerce 订阅管理员电子邮件
- swift - Flutter Swift StreamHandler 处理多个监听器
- python - 字符串索引超出范围,垄断游戏
- html - 用于更改 CSS 的 VueJS 事件处理程序
- micropython - STM32F446 Nucleo-64 上的 MicroPython
- restructuredtext - 在图形指令中中断标题
- python - 代理请求正在使用我自己的 IP,当我使用 https 时出现错误
- python - 除了维度 2,张量的大小必须匹配。得到 16 和 32(违规索引为 0)
- node.js - “EPERM:不允许操作”与 Imgur
- reactjs - 我应该在哪里正确地在 ReactJs 中进行 AJAX 调用?