* {
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>
在上面的示例中,如何在不设置
article
的情况下将每行限制为只有3个max-width
窗格?请注意,我仍然需要响应能力。只是当我扩展浏览器窗口时,我不希望窗格4、5、6等捕捉到第一行。 最佳答案
您只需要将grid-template-columns设置为自动即可。
576像素或更小的屏幕尺寸将转换为单列:
* {
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>