背景图片没有覆盖整个页面?
Background image not covering entire page?
我刚刚开始学习 HTML 和 CSS(还有一点点 Bootstrap),我正在尝试制作一个简单的滚动网页。我的问题是我无法让 div 背景图像覆盖页面的整个高度——它只覆盖了 h2 文本,就像它认为该元素的末尾就是页面的末尾一样。我不知道为什么要这样做,而且我无法修复它。这真的让我很困惑,我确信它有一个我错过的非常简单的解决方案。任何建议将不胜感激。
这里是codepen:
body {
background-color: rgb(255, 255, 255);
}
#front {
background: url("https://image.ibb.co/mjTmwv/port34.png") no-repeat;
overflow: hidden;
background-size: cover;
width: 100%;
height: 100%;
}
#h1 {
color: white;
font-size: 50px;
margin-top: 40vh;
padding: 10px;
background: rgba(43, 142, 255, 0.4);
}
#pt {
color: white;
font-size: 30px;
background: rgba(39, 220, 130, 0.4);
}
<ul style="z-index:9;">
<li>
<a class="active" href="#"><img class="img-fluid" style="width:auto;height:auto;max-height:26px;max-width:20px;" src="https://image.ibb.co/mg1s3a/lyreimage27.png" alt="website icon"></img> placeholder inc.</a>
</li>
<li><a href="#">About
</a>
</li>
<li><a style="text-decoration:none" href="#">Portfolio</a>
</li>
<li><a href="#">Contact</a>
</li>
</ul>
<header>
<div id="front">
<div class="container-fluid">
<h1 id="h1" class="text-center">Placeholder</h1>
<h2 id="pt" class="text-center">Placeholder Text</h2>
</header>
您的 #front
div 内容不足,无法在整个页面上显示。您应该有足够的内容来覆盖整个页面,或者为 body
元素设置 background-image
。否则更改您的 #front
css,如下所示。
#front {
background: url("https://image.ibb.co/mjTmwv/port34.png") no-repeat;
overflow: hidden;
background-size: cover;
width: 100%;
height: 100vh;
}
body
{
background-color: rgb(255, 255, 255);
}
#front {
background: url("https://image.ibb.co/mjTmwv/port34.png") no-repeat;
overflow: hidden;
background-size: cover;
width: 100%;
height: 100vh;
}
#h1 {
color: white;
font-size: 50px;
margin-top: 40vh;
padding: 10px;
background: rgba(43, 142, 255, 0.4);
}
#pt {
color: white;
font-size: 30px;
background: rgba(39, 220, 130, 0.4);
}
<ul style="z-index:9;">
<li>
<a class="active" href="#"><img class="img-fluid" style="width:auto;height:auto;max-height:26px;max-width:20px;" src="https://image.ibb.co/mg1s3a/lyreimage27.png" alt="website icon"></img> placeholder inc.</a>
</li>
<li><a href="#">About
</a>
</li>
<li><a style="text-decoration:none" href="#">Portfolio</a>
</li>
<li><a href="#">Contact</a>
</li>
</ul>
<header>
<div id="front">
<div class="container-fluid">
<h1 id="h1" class="text-center">Placeholder</h1>
<h2 id="pt" class="text-center">Placeholder Text</h2>
</header>
#front
是 header
大小的 100%。尝试将 header 设置为 height: 100%
。或者(更好的解决方案),如果您希望它覆盖整个页面,请在 body 上设置背景。这是更简单的选择,更有意义。
我稍微清理了你的标记(尽量不要使用内联样式),我认为我达到了你想要的效果。
#front {
background: url("https://image.ibb.co/mjTmwv/port34.png") no-repeat;
overflow: hidden;
background-size: cover;
width: 100%;
min-height: 100vh;
}
.text-center {
text-align: center;
}
h1 {
color: white;
font-size: 50px;
margin-top: 40vh;
padding: 10px;
background: rgba(43, 142, 255, 0.4);
}
h2 {
color: white;
font-size: 30px;
background: rgba(39, 220, 130, 0.4);
}
ul {
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
background-color: rgba(0, 0, 0, 0.7);
position: fixed;
top: 0;
width: 100%;
font-size: 16px;
z-index: 9;
}
li {
float: left;
}
li a {
display: block;
color: white;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}
li a:hover:not(.active) {
color: white;
background-color: rgba(39, 220, 130, 0.4);
transition: 0.5s;
text-decoration: none;
}
.active {
color: white;
background-color: rgba(43, 142, 255, 0.4);
}
.active:hover {
color: white;
text-decoration: none;
}
.active img {
width:auto;
height:auto;
max-height:26px;
max-width:20px;
}
<ul>
<li><a class="active" href="#"><img class="img-fluid" src="https://image.ibb.co/mg1s3a/lyreimage27.png" alt="website icon" />placeholder inc.</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Portfolio</a></li>
<li><a href="#">Contact</a>
</li>
</ul>
<header id="front">
<div>
<div class="container-fluid text-center">
<h1>Placeholder</h1>
<h2>Placeholder Text</h2>
</div>
</div>
</header>
将 header 元素的高度设置为 100vh;
所以在你的 css 添加:
header {
height: 100vh;
}
我刚刚开始学习 HTML 和 CSS(还有一点点 Bootstrap),我正在尝试制作一个简单的滚动网页。我的问题是我无法让 div 背景图像覆盖页面的整个高度——它只覆盖了 h2 文本,就像它认为该元素的末尾就是页面的末尾一样。我不知道为什么要这样做,而且我无法修复它。这真的让我很困惑,我确信它有一个我错过的非常简单的解决方案。任何建议将不胜感激。
这里是codepen:
body {
background-color: rgb(255, 255, 255);
}
#front {
background: url("https://image.ibb.co/mjTmwv/port34.png") no-repeat;
overflow: hidden;
background-size: cover;
width: 100%;
height: 100%;
}
#h1 {
color: white;
font-size: 50px;
margin-top: 40vh;
padding: 10px;
background: rgba(43, 142, 255, 0.4);
}
#pt {
color: white;
font-size: 30px;
background: rgba(39, 220, 130, 0.4);
}
<ul style="z-index:9;">
<li>
<a class="active" href="#"><img class="img-fluid" style="width:auto;height:auto;max-height:26px;max-width:20px;" src="https://image.ibb.co/mg1s3a/lyreimage27.png" alt="website icon"></img> placeholder inc.</a>
</li>
<li><a href="#">About
</a>
</li>
<li><a style="text-decoration:none" href="#">Portfolio</a>
</li>
<li><a href="#">Contact</a>
</li>
</ul>
<header>
<div id="front">
<div class="container-fluid">
<h1 id="h1" class="text-center">Placeholder</h1>
<h2 id="pt" class="text-center">Placeholder Text</h2>
</header>
您的 #front
div 内容不足,无法在整个页面上显示。您应该有足够的内容来覆盖整个页面,或者为 body
元素设置 background-image
。否则更改您的 #front
css,如下所示。
#front {
background: url("https://image.ibb.co/mjTmwv/port34.png") no-repeat;
overflow: hidden;
background-size: cover;
width: 100%;
height: 100vh;
}
body
{
background-color: rgb(255, 255, 255);
}
#front {
background: url("https://image.ibb.co/mjTmwv/port34.png") no-repeat;
overflow: hidden;
background-size: cover;
width: 100%;
height: 100vh;
}
#h1 {
color: white;
font-size: 50px;
margin-top: 40vh;
padding: 10px;
background: rgba(43, 142, 255, 0.4);
}
#pt {
color: white;
font-size: 30px;
background: rgba(39, 220, 130, 0.4);
}
<ul style="z-index:9;">
<li>
<a class="active" href="#"><img class="img-fluid" style="width:auto;height:auto;max-height:26px;max-width:20px;" src="https://image.ibb.co/mg1s3a/lyreimage27.png" alt="website icon"></img> placeholder inc.</a>
</li>
<li><a href="#">About
</a>
</li>
<li><a style="text-decoration:none" href="#">Portfolio</a>
</li>
<li><a href="#">Contact</a>
</li>
</ul>
<header>
<div id="front">
<div class="container-fluid">
<h1 id="h1" class="text-center">Placeholder</h1>
<h2 id="pt" class="text-center">Placeholder Text</h2>
</header>
#front
是 header
大小的 100%。尝试将 header 设置为 height: 100%
。或者(更好的解决方案),如果您希望它覆盖整个页面,请在 body 上设置背景。这是更简单的选择,更有意义。
我稍微清理了你的标记(尽量不要使用内联样式),我认为我达到了你想要的效果。
#front {
background: url("https://image.ibb.co/mjTmwv/port34.png") no-repeat;
overflow: hidden;
background-size: cover;
width: 100%;
min-height: 100vh;
}
.text-center {
text-align: center;
}
h1 {
color: white;
font-size: 50px;
margin-top: 40vh;
padding: 10px;
background: rgba(43, 142, 255, 0.4);
}
h2 {
color: white;
font-size: 30px;
background: rgba(39, 220, 130, 0.4);
}
ul {
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
background-color: rgba(0, 0, 0, 0.7);
position: fixed;
top: 0;
width: 100%;
font-size: 16px;
z-index: 9;
}
li {
float: left;
}
li a {
display: block;
color: white;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}
li a:hover:not(.active) {
color: white;
background-color: rgba(39, 220, 130, 0.4);
transition: 0.5s;
text-decoration: none;
}
.active {
color: white;
background-color: rgba(43, 142, 255, 0.4);
}
.active:hover {
color: white;
text-decoration: none;
}
.active img {
width:auto;
height:auto;
max-height:26px;
max-width:20px;
}
<ul>
<li><a class="active" href="#"><img class="img-fluid" src="https://image.ibb.co/mg1s3a/lyreimage27.png" alt="website icon" />placeholder inc.</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Portfolio</a></li>
<li><a href="#">Contact</a>
</li>
</ul>
<header id="front">
<div>
<div class="container-fluid text-center">
<h1>Placeholder</h1>
<h2>Placeholder Text</h2>
</div>
</div>
</header>
将 header 元素的高度设置为 100vh;
所以在你的 css 添加:
header {
height: 100vh;
}