搜索

首页  >  问答  >  正文

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

这是带有代码的 codpen 链接: https://codepen.io/gregelious/pen/zYmLGex

这是一个餐厅菜单,有 3 个类别(div)作为 3 个独立的框。

(此处的详细说明:https://github.com/jhu-ep-coursera/fullstack-course4/blob/master/assignments/assignment2/Assignment-2.md)

这些是说明:

我给出了“第一”、“第二”和“第三”的 div id,这是我的 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 课程中收到了这项作业,并重新观看了有关媒体查询和其他相关内容的视频,但没有取得任何进展。

P粉658954914P粉658954914500 天前621

全部回复(1)我来回复

  • P粉805931281

    P粉8059312812023-09-12 11:02:18

    我建议使用容器 div 来控制 Flex 布局,如下一个演示所示:

    您必须使布局正常工作,这就是您使用 flex 属性所做的事情(更新,您需要将单位设置为 min-width max-width 属性,例如 px : min-width: 768px)

    我还建议构建从小屏幕到大屏幕的布局(移动设备优先),并仅设置 @media (min-width) css 查询。请考虑,仅当设置了较大的媒体查询时,较大的媒体查询才会覆盖之前的较小查询。

    这是一个工作演示:

    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>

    回复
    0
  • 取消回复