我正在尝试使用浮点数练习网格系统。

我有这个项目的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/

希望能有所帮助。

10-02 15:35