我正在尝试使用浮点数练习网格系统。
我有这个项目的HTML结构
<div class="grid-container">
<div class="row">
<div class="col">1</div>
<div class="col">2</div>
<div class="col">3</div>
<div class="col">4</div>
<div class="col">5</div>
<div class="col">6</div>
<div class="col">7</div>
<div class="col">8</div>
<div class="col">9</div>
</div>
</div>
而这个CSS
body {
background: #246A73;
box-sizing: border-box;
}
*,
*:before,
*:after {
box-sizing: border-box;
}
.grid-container {
width: 100%;
max-width: 480px;
margin-left: auto;
margin-right: auto;
}
.row:before,
.row:after {
content: '';
dispay: table;
clear: both;
}
.col {
margin: 3% auto 0;
height: 350px;
text-align: center;
width: 100%;
background: #ccc;
}
@media screen and (min-width: 850px) {
.grid-container {
max-width: 750px;
}
.col {
float: left;
width: 49%;
margin: 3% 2% 0% 0%;
}
.col:nth-child(2n+2) {
margin-right: 0;
float: left;
}
}
@media screen and (min-width: 980px) {
.grid-container {
max-width: 900px;
}
}
@media screen and (min-width: 1200px) {
.grid-container {
max-width: 1100px;
}
.col {
width: 32%;
margin: 1% 2% 0% 0;
}
div.col:nth-child(3n+3) {
margin-right: 0;
float:left;
}
}
我从移动版式开始,然后逐步扩大到更大的显示器。
一切都很好,直到我点击了第3个媒体查询,我应该有3列。
我在该媒体查询上使用的代码与在第一个有2列的代码上使用的代码相同。但是不知何故,它破裂了,我想知道为什么
最佳答案
以下将@media (min-width: 850px)
的CSS应用于@media (min-width: 1200px)
。这会导致第二列的屏幕尺寸为margin-right
时没有1200px
。
@media screen and (min-width: 850px) {
.col:nth-child(2n+2) {
margin-right: 0;
float: left;
}
}
因此,在
margin-right
中时,您必须重新添加第二列@media (min-width: 1200px)
。 .col:nth-child(2n+2) {
margin-right: 2%;
}
https://jsfiddle.net/4wk24mf8/2/
希望能有所帮助。