你能告诉我,我如何根据视口大小和导航栏的高度来设置backgroundimage的高度。 background_mage应该适合从机器人完整的屏幕直到导航栏开始。 Navbar固定在顶部,它是一个登陆页面。如果我向下滚动,当导航栏开始时,backgroundimage应该完全停止。我希望,你们知道,我试图解释的是什么。你有任何想法,如何实现这一点。
非常感谢你
这是vh
(视口高度)单位和css calc()
方法一起工作的完美契合。我为你做了一个例子。
视口高度单位的工作方式与%
大致相同,但1vh
是视口高度的1/100,而100vh
的高度是100/100。 (是的,还有一个大众单位!)
calc()
函数用于减去导航栏和背景容器的高度。
/* Answer */
.backgroundImage {
position: absolute;
height: calc(100vh - 30px); /* you can use calc() function. */
width: 100%;
background-image: url('https://placehold.it/2000x2000');
background-size: cover;
background-position: center center;
z-index: -1;
}
/* additional styling */
body {
background: lightblue;
padding-top: 30px;
margin: 0;
font-family: arial;
}
nav {
position: fixed;
top: 0;
left: 0;
right: 0;
width: 100%;
background: gray;
height: 30px;
}
main {
position: relative;
}
ul {
padding: 0;
margin: 0;
list-style: none;
max-width: 400px;
line-height: 30px;
width: 100%;
margin: auto;
text-align: center;
}
li {
display: inline-block;
}
a {
color: #FFF;
text-decoration: none;
padding: 0 10px;
}
<html>
<head></head>
<body>
<header>
<nav>
<ul>
<li><a href="#">Test link</a></li>
<li><a href="#">Test link</a></li>
<li><a href="#">Test link</a></li>
</ul>
</nav>
</header>
<main>
<div class="backgroundImage"></div>
</main>
</body>
</html>