css 我需要帮助间距我的div为3个不同的媒体查询

yfjy0ee7  于 2023-05-19  发布在  其他
关注(0)|答案(2)|浏览(106)

这是代码的codpen链接:https://codepen.io/gregelious/pen/zYmLGex
这是一个餐厅菜单,有3个类别(divs)作为3个单独的盒子。
(in深度说明如下:https://github.com/jhu-ep-coursera/fullstack-course4/blob/master/assignments/assignment2/Assignment-2.md
这些是指令:

  • 当width >= 992时,每个框应该占据屏幕宽度的三分之一
  • 当宽度介于768和991之间时,前两个框占屏幕宽度的50%,第三个框应占下一行宽度的100%
  • 当宽度< 768时,每个框占宽度的100%,因此应该有3个单独的行

我给了divs的id“first”、“second”和“third”,这是我的css:

@media (min-width: 992) {
  div {
    width: 33.33%;
  }
}

@media (min-width: 768) and (max-width: 991) {
  #first, #second {
    width: 50%;
  }
  #third {
    width: 100%;
  }
}

当我调整浏览器窗口的大小时,div的大小没有改变,我不知道如何修复它。我从Coursera课程中得到了这个作业,我重新观看了媒体查询和其他相关内容的视频,但我没有取得任何进展。

baubqpgj

baubqpgj1#

我建议使用容器div来控制flex布局,如下一个演示所示:
你必须使布局工作,这就是你对flex属性所做的(更新,你需要为min-widthmax-width属性设置一个单位,例如pxmin-width: 768px
我还建议你从小屏幕到大屏幕的布局(移动的优先),并且只设置@media (min-width) css查询。考虑到较大的媒体查询仅在它们被设置时才覆盖先前的小查询。
下面是一个工作demo:

body {
  margin: 0;
  padding: 0;
}

h1 {
  text-align: center;
}

div {
  float: left;
}

section {
  background-color: gray;
  border: 1px solid black;
  margin: 10px;
}

section h2 {
  background-color: blue;
  border: 1px solid black;
  margin-top: 0px;
  padding-top: 0px;
  padding-bottom: 2px;
  padding-right: 30px;
  padding-left: 30px;
  display: inline;

  float: right;
}

section p {
  clear: right;
  padding: 0px 10px 10px 10px;
}

/** added code */
.container {
  display: flex;
  flex-wrap: wrap;
}

.menu {
  width: 100%;
}

@media (min-width: 768px) {
  .menu {
    width: 50%;
  }
  
  .flow {
    width: 100%;
  }
}

@media (min-width: 992px) {
  .menu, .flow {
    width: 33.333%;
  }
}
<h1>Our Menu</h1>

<div class="container">
  <div id="first" class="menu">
    <section>
      <h2>Chicken</h2>
      <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
    </section>
  </div>

  <div id="second" class="menu">
    <section>
      <h2>Beef</h2>
      <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
    </section>
  </div>

  <div id="third" class="menu flow">
    <section>
      <h2>Sushi</h2>
      <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
    </section>
  </div>
</div>
relj7zay

relj7zay2#

您需要在min和max width中的值后面加上'px'

@media (min-width: 768px) and (max-width: 991px) {}

相关问题