CSS Grid响应式布局

81 阅读1分钟
  <body>
    <div class="con">
      <header>header</header>
      <sidebar>sidebar</sidebar>
      <main>main</main>
      <section>section</section>
      <content>content</content>
      <footer>footer</footer>
    </div>
    <style>
      body,
      html {
        width: 100%;
        height: 100%;
        margin: 0;
        padding: 0;
      }
      header {
        background-color: red;
        grid-area: header;
      }
      sidebar {
        background-color: blue;
        grid-area: sidebar;
      }
      main {
        background-color: green;
        grid-area: main;
      }
      section {
        background-color: yellow;
        grid-area: section;
      }
      content {
        background-color: aqua;
        grid-area: content;
      }
      footer {
        background-color: gray;
        grid-area: footer;
      }
      .con {
        width: 100%;
        height: 100%;
        background-color: #bfa;
        display: grid;
        gap: 5px;
        /* margin: 14px; */
        grid-template-columns: repeat(3, 1fr);
        grid-template-rows: 1fr 2fr 2fr 1fr;
        grid-template-areas:
          "header header header"
          "sidebar main main"
          "sidebar section content"
          "footer footer footer";
      }
      @media (max-width: 780px) {
        .con {
          grid-template-columns: 1fr;
          grid-template-rows: 10% 30% 30% 10%;
          grid-template-areas:
            "header"
            "sidebar"
            "main"
            "section"
            "content"
            "footer";
        }
      }
    </style>
  </body>