在视口减去导航栏上设置背景图像的大小

问题描述 投票:-1回答:1

你能告诉我,我如何根据视口大小和导航栏的高度来设置backgroundimage的高度。 background_mage应该适合从机器人完整的屏幕直到导航栏开始。 Navbar固定在顶部,它是一个登陆页面。如果我向下滚动,当导航栏开始时,backgroundimage应该完全停止。我希望,你们知道,我试图解释的是什么。你有任何想法,如何实现这一点。

非常感谢你

css height navbar viewport
1个回答
1
投票

这是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>
© www.soinside.com 2019 - 2024. All rights reserved.