发布于 2026-01-06 0 阅读
0

使用 CSS Grid 进行媒体查询

使用 CSS Grid 进行媒体查询

大家好,今天我将向大家展示如何将媒体查询与 CSS 网格结合使用,在网页中创建一个响应式网格系统。

让我们开始吧……

HTML -

<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="app.css" />
  </head>
  <body>
    <div class="container">
      <div class="elements">1</div>
      <div class="elements">2</div>
      <div class="elements">3</div>
      <div class="elements">4</div>
      <div class="elements">5</div>
      <div class="elements">6</div>
      <div class="elements">7</div>
      <div class="elements">8</div>
      <div class="elements">9</div>
      <div class="elements">10</div>
      <div class="elements">11</div>
      <div class="elements">12</div>
      <div class="elements">13</div>
      <div class="elements">14</div>
      <div class="elements">15</div>
      <div class="elements">16</div>
      <div class="elements">17</div>
      <div class="elements">18</div>
      <div class="elements">19</div>
      <div class="elements">20</div>
      <div class="elements">21</div>
      <div class="elements">22</div>
      <div class="elements">23</div>
      <div class="elements">24</div>
      <div class="elements">25</div>
      <div class="elements">26</div>
      <div class="elements">27</div>
      <div class="elements">28</div>
      <div class="elements">29</div>
      <div class="elements">30</div>
      <div class="elements">31</div>
      <div class="elements">32</div>
      <div class="elements">33</div>
      <div class="elements">34</div>
      <div class="elements">35</div>
      <div class="elements">36</div>
      <div class="elements">37</div>
      <div class="elements">38</div>
      <div class="elements">39</div>
      <div class="elements">40</div>
      <div class="elements">41</div>
      <div class="elements">42</div>
      <div class="elements">43</div>
      <div class="elements">44</div>
      <div class="elements">45</div>
      <div class="elements">46</div>
      <div class="elements">47</div>
      <div class="elements">48</div>
      <div class="elements">49</div>
      <div class="elements">50</div>
    </div>
  </body>
</html>
Enter fullscreen mode Exit fullscreen mode
  • 这里我们创建了一个名为“container”的div元素,并在其中创建了40个名为“elements”的div元素。

CSS -

     .container{
        /* box model properties */
        margin: 3rem auto;
        padding: 2rem;

        /* display properties */
        display: grid;
        grid-template-columns: repeat(5,1fr);
        place-items: center;
        gap: 20px 30px;

        /* UI properties */
        background-color: darkslateblue;
        border-radius: 10px;
      }
      .elements{
        /* box model properties */
        padding: 1rem 2rem;

        /* Display Properties */
        text-align: center;
        /* UI Properties */
        background-color: rgb(169, 158, 238);
        border-radius: 6px;
        color: rgb(41, 42, 43);
      }

      /* Mobile View */
      @media screen and (min-width:250px) and (max-width:480px) {
        .container{
          grid-template-columns: repeat(1,1fr);
        }
      }

       /* Tablet View */
       @media screen and (min-width:481px) and (max-width:768px) {
        .container{
          grid-template-columns: repeat(3,1fr);
        }
      }
       /* Laptop View */
       @media screen and (min-width:769px) and (max-width:1024px) {
        .container{
          grid-template-columns: repeat(4,1fr);
        }
      }
Enter fullscreen mode Exit fullscreen mode
  • 这里我们使用 display:grid 属性将 div 设置为网格,并使用 grid-template-columns:repeat(5,1fr) 创建了一个 5 列 8 行的网格(8 x 5 = 40 个元素),gap:20px 30px 表示行间距为 20px,列间距为 30px,place-items:center 表示项目将在水平和垂直方向上居中。
  • 然后我们对容器类进行了常规样式设置。
  • 然后我们为所有类名为“elements”的div元素设置了样式。
  • 然后我们为移动视图创建了一个媒体查询,设置了 (min-width:250px) 和 (max-width:480px),并在其中设置了 grid-template-columns:repeat(1,1fr),这意味着在 250px 到 480px 之间,容器将只有一列和 40 行,这是为移动用户准备的。
  • 然后我们为平板电脑视图创建了一个媒体查询,设置了 (min-width:481px) 和 (max-width:768px),并在其中设置了 grid-template-columns:repeat(3,1fr),这意味着在 481px 到 768px 之间,容器将有 3 列和 17 行,这是为平板电脑用户准备的。
  • 然后我们为平板电脑视图创建了一个媒体查询,设置了 (min-width:769px) 和 (max-width:1024px),并在其中设置了 grid-template-columns:repeat(3,1fr),这意味着在 769px 到 1024px 之间,容器将有 4 列和 13 行,这是为小屏幕或笔记本电脑用户准备的。
  • 屏幕尺寸大于 1024 像素时,网格默认设置为 5 列 10 行。

这篇帖子就到这里啦。
感谢阅读!如果您发现任何错误或有任何建议,请在评论区留言。
^^您可以通过以下链接捐赠支持我,谢谢!👇👇 ^^
☕ --> https://www.buymeacoffee.com/waaduheck <--

另请参阅这些帖子:
https://dev.to/shubhamtiwari909/higher-order-function-in-javascript-1i5h

https://dev.to/shubhamtiwari909/styled-componenets-react-js-15kk

https://dev.to/shubhamtiwari909/introduction-to-tailwind-best-css-framework-1gdj

文章来源:https://dev.to/shubhamtiwari909/media-query-with-css-grid-1l7a