html - 将css网格行限制为特定数量的项目
问题描述
* {
box-sizing: border-box;
}
main {
padding: 0 20px;
width: 100%;
display: grid;
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
grid-gap: 1em;
}
article {
border-radius: 10px;
padding: 20px;
color: #fff;
}
article:nth-child(odd) {
background-color: #55BBE9;
}
article:nth-child(even) {
background-color: #afbe29;
}
<main>
<article>1</article>
<article>2</article>
<article>3</article>
<article>4</article>
<article>5</article>
<article>6</article>
<article>7</article>
<article>8</article>
<article>9</article>
</main>
在上面的示例中,如何将每行限制为只有 3 个article
窗格,而不设置max-width
? 请注意,我仍然想要响应能力。只是当我展开浏览器窗口时,我不希望窗格 4、5、6 等抢购到第一行。
解决方案
您只需为所需的每一列将 grid-template-columns 设置为 auto 即可。576px 或更小的屏幕尺寸将转换为单列:
* {
box-sizing: border-box;
}
main {
padding: 0 20px;
width: 100%;
display: grid;
grid-template-columns: auto auto auto;
grid-gap: 1em;
}
@media (max-width: 576px) {
main {
grid-template-columns: auto;
}
}
article {
border-radius: 10px;
padding: 20px;
color: #fff;
}
article:nth-child(odd) {
background-color: #55BBE9;
}
article:nth-child(even) {
background-color: #afbe29;
}
<main>
<article>1</article>
<article>2</article>
<article>3</article>
<article>4</article>
<article>5</article>
<article>6</article>
<article>7</article>
<article>8</article>
<article>9</article>
</main>
推荐阅读
- laravel - 如何在浏览器上显示 Vue-Dropzone 响应?
- angular - 无法安装主题
- c# - 实体配置:如何正确配置类和实体配置
- api - 用于获取/读取节点属性表达式的 Maya API
- java - 在已经运行的 android 线程上调用函数?写在监听蓝牙的同一个线程上?
- google-chrome-extension - 我的 Chrome 扩展程序中没有为 *.google.com 网站加载 content_scripts
- jsp - JSP 不能“看到”本地资源文件(css、img、js)
- node.js - Eslint:解析错误:意外的令牌...(分隔符 ES)
- javascript - 选项卡不是 jQuery(Rails) 中的函数错误
- sql - SUM JOIN 其他表返回双值 SQL