Сделать заголовок 100% экрана - PullRequest
4 голосов
/ 26 сентября 2019

Я пытаюсь сделать заголовок раздела 100% области просмотра с height: 100vh;.Но почему-то он переполняется.

При поиске в devtools я вижу, что причина этой проблемы исходит от моей панели навигации.Вот структура HTML:

---body
------header
---------nav
-----------other div
----closing tags

Вот CSS:

* {
  padding: 0;
  margin: 0;
  border: 0;
  font-weight: normal;
  vertical-align: baseline;
}

*,
*:before,
*:after {
  -webkit-box-sizing: inherit;
          box-sizing: inherit;
}

html {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  height: 100%;
}

body {

  background: linear-gradient(90deg, #1b1f2a 1.2%, #191d28 1%) 1px 0, #fff;
  background-size: 240px 1px;
  overflow-x: hidden;
}


header {
  height: 100vh;
}

header nav {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 1fr 4fr 1fr;
      grid-template-columns: 1fr 4fr 1fr;
      grid-template-areas: "brand links email";
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 95%;
  margin: 50px auto 30px auto;
  padding: 10px auto;
}

Так что, если я изменю верхнее поле заголовка на 0, переполнения не будет.

Вот ссылка на реальный проект: https://www.generationz.dev/projects/portfolio1/index.html

Итак, чтобы прояснить вопрос: Как мне установить раздел заголовка на 100% от области просмотра без какого-либо переполнения?

Спасибо.

Ответы [ 2 ]

3 голосов
/ 26 сентября 2019

Навигация имеет верхнее поле 50px.

header nav {
  margin: 50px auto 30px auto;
}

Заголовок установлен на height: 100vh.

Итак, вы получите переполнение, потому что: 100vh + 50px > 100%.

Вы можете удалить верхнее поле в nav или вместо height: 100vh в заголовке использовать height: calc(100vh - 50px).Есть и другие варианты, такие как добавление отступов или границ.См. Выдержку из MDN ниже.

Хотя nav вложено в header, верхнее поле nav отображается за пределами header из-за сжатия полей.

From MDN :

Освоение поля свертывания

Нет содержимого, разделяющего родителей и потомков.

Если нет границы, отступа, встроенной части, контекста форматирования блока или разрешения для отделения margin-top блока от margin-top одного или нескольких его дочерних блоков;или без рамки, отступа, встроенного содержимого, height, min-height или max-height, чтобы отделить margin-bottom блока от margin-bottom одного или нескольких его дочерних блоков, тогда эти поля свернуты. Свернутое поле заканчивается за пределами родительского элемента.

Еще один пример разрушения поля:

0 голосов
/ 26 сентября 2019

Добавить float: left в шапку.Тогда это будет работать

header {
  float: left;
  height: 100vh;
}
...