Простой вопрос о сетке CSS: столбец не занимает всю ширину

#html #css #frontend #css-grid

#HTML #css #интерфейс #css-grid

Вопрос:

Я возился с сеткой CSS, чтобы протестировать вещи и особенно области сетки, и мне не удается выполнить эту простую вещь :

введите описание изображения здесь

Я пытаюсь получить содержимое во всю ширину устройства шириной 1500 пикселей. Я почти уверен, что мне не хватает очень простой вещи, поэтому, если кто-то знает, пожалуйста, не стесняйтесь помочь 🙂

https://codepen.io/N3G/pen/jOMLPMz

 <div class="main-wrapper">
  <div class="menu">
    <ul>
      <li><a href="#">Lien du menu</a></li>
      <li><a href="#">Lien du menu</a></li>
      <li><a href="#">Lien du menu</a></li>
      <li><a href="#">Lien du menu</a></li>
    </ul>
  </div>
  <div class="left">
    Left
  </div>
  <main class="main">
    Lorem ipsum dolor sit amet, consectetur adipiscing elit.
  </main>
  <aside class="right">
    Right
  </aside>
  <footer class="footer">
    Footer
  </footer>
</div>
 

 *, ::before, ::after {
  padding: 0;
  margin: 0;
  box-sizing: border-box;
}

body {
  font-family: Arial;
  padding: 15px;
}

.main-wrapper {
  height: 100vh;
  width: 100%;
  display: grid;
  gap: 15px;
  grid-template-rows: 80px 1fr 80px;
  grid-template-columns: 250px 1fr 250px;
  grid-template-areas: 
    "menu menu menu"
    "left content right"
    "footer footer footer"
}

@media screen and (max-width: 1500px) {
  .main-wrapper {
    grid-template-rows: 1fr 250px 80px;
    grid-template-columns: 250px 1fr 1fr;
    grid-template-areas: 
      "menu content content"
      "menu left right"
      "footer footer footer"
  }
}

.menu {
  grid-area: menu;
  background: grey;
}

.menu ul {
  display: flex;
  justify-content: space-between;
  max-width: 800px;
  margin: 0 auto;
}

@media screen and (max-width: 1500px) {
  .menu ul {
    flex-direction: column
  }
}

.main-wrapper > * {
  padding: 15px;
  border: 1px solid #999;
}

.left {
  grid-area: left;
  background: #ccc
}

.right {
  grid-area: right;
  background: #ccc
}

.content {
  grid-area: content
}

.footer {
  grid-area: footer;
  background: darkgrey
}
 

Спасибо, ребята.

Ответ №1:

У вас неверный селектор, который не соответствует вашему HTML

 .content {
  grid-area: content
}
 

должно быть

 .main {
  grid-area: content
}
 

Комментарии:

1. Ха-ха, я знал, что это будет глупо, спасибо, это было полностью так 🙂 Он визуально работал так, как ожидалось, когда не реагировал, поэтому я не перепроверял области.

Ответ №2:

В вашем HTML-разделе, который вы назвали «main», измените класс на content вместо main.

 <main class="content">
    Lorem ipsum dolor sit amet, consectetur adipiscing elit.
</main>
 

У вас нет класса с именем main в вашем CSS.