为什么100vh不走全屏?
Why 100vh is not taking the full screen?
这是我第一次遇到此类问题。我正在尝试制作响应式导航栏。在一定的宽度下,我希望我的导航链接 div 转到右侧栏。但是导航链接 div 即使在给出 100vh 之后也没有占据整个视口高度。这是代码-
HTML
<header>
<nav>
<div class="logo">Logo</div>
<div class="nav-items">
<li><a href = '#'>Link-1</a></li>
<li><a href = '#'>Link-2</a></li>
<li><a href = '#'>Link-3</a></li>
</div>
</nav>
</header>
SCSS
* {
padding: 0;
margin: 0;
box-sizing: border-box;
}
header {
background: blue;
nav {
height: 65px;
max-width: 1340px;
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
margin: auto;
padding: 1rem;
.logo {
font-size: 2rem;
color: black;
}
.nav-items {
li {
display: inline;
a {
color: black;
text-decoration: none;
margin-left: 2rem;
}
}
}
}
}
@media screen and (max-width: 768px) {
header nav .nav-items {
position: absolute;
right: 0;
height: 100vh;
width: 50%;
border: 1px solid black;
}
}
Link 到 codepen -
设置固定位置,添加top:0;也 height:100vh 和 left or right to 0 in the media query
高度为 100vh,但您已设置 align-items:center
,因此元素偏移以与另一个 flex 元素对齐。
添加
header nav {
align-items: flex-start;
}
到你的媒体查询
现在,由于您的 nav
元素有填充,您需要使用
来适应它
height: calc(100vh - 16px);
这是因为您有 align-items:center; 根据媒体查询更改它。
@media screen and (max-width: 768px) {
header nav {
align-items:unset;
}
}
这是我第一次遇到此类问题。我正在尝试制作响应式导航栏。在一定的宽度下,我希望我的导航链接 div 转到右侧栏。但是导航链接 div 即使在给出 100vh 之后也没有占据整个视口高度。这是代码-
HTML
<header>
<nav>
<div class="logo">Logo</div>
<div class="nav-items">
<li><a href = '#'>Link-1</a></li>
<li><a href = '#'>Link-2</a></li>
<li><a href = '#'>Link-3</a></li>
</div>
</nav>
</header>
SCSS
* {
padding: 0;
margin: 0;
box-sizing: border-box;
}
header {
background: blue;
nav {
height: 65px;
max-width: 1340px;
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
margin: auto;
padding: 1rem;
.logo {
font-size: 2rem;
color: black;
}
.nav-items {
li {
display: inline;
a {
color: black;
text-decoration: none;
margin-left: 2rem;
}
}
}
}
}
@media screen and (max-width: 768px) {
header nav .nav-items {
position: absolute;
right: 0;
height: 100vh;
width: 50%;
border: 1px solid black;
}
}
Link 到 codepen -
设置固定位置,添加top:0;也 height:100vh 和 left or right to 0 in the media query
高度为 100vh,但您已设置 align-items:center
,因此元素偏移以与另一个 flex 元素对齐。
添加
header nav {
align-items: flex-start;
}
到你的媒体查询
现在,由于您的 nav
元素有填充,您需要使用
height: calc(100vh - 16px);
这是因为您有 align-items:center; 根据媒体查询更改它。
@media screen and (max-width: 768px) {
header nav {
align-items:unset;
}
}