如何去除背景图片和导航栏之间的白色间隙
How to remove the white gap between the background image and the navigation bar
我绝不是 HTML 或 CSS 方面的专家。我是相当新的,并且没有什么经验。我遇到过问题,但不确定如何解决。正如您从 JSFiddle(下面的链接)中看到的那样,图像和导航栏之间有一个白色的缝隙。该图像是在 CSS 中创建的背景图像。我想消除间隙,使图像与导航栏齐平。
我已经尝试更改#headerimage div 以及#nav div 的边距和填充值。我知道如果我将 margin-top 设置为负值,它可以解决问题,但这是一个非常笨拙的解决方案,因为如果我增加字体大小或类似的东西,我将不得不不断更改该值。我也在 Whosebug 上搜索了类似的问题,但是 none 解决了我的问题。
我也意识到,就我的编码方式而言,我可能会做很多不同的事情,我又是新手。下面的代码是HTML代码,下一段是CSS代码。抱歉,如果我没有解释清楚,如果您需要更多信息,我会尽力进一步详细说明这个问题。非常感谢大家花时间看我的问题。祝一切顺利。如果您发现任何其他问题,无论是可能的错误,还是不是一个好的解决方案,我很乐意在这里讨论。
<html>
<head>
<link rel="stylesheet" type="text/css" href="about.css">
<title>Sean Anderson</title>
</head>
<body>
<div id="container">
<div id="nav">
<ul>
<li><a href="about.html">About</a></li>
<li><a href="achievements.html">Achievements</a></li>
<li><a href="school.html">Academics</a></li>
<li><a href="contact.html">Contact</a></li>
</ul>
</div>
<div id="headerimage">
<h1>SEAN ANDERSON</h1>
</div>
<div id="whoami">
<h2>WHO AM I?</h2>
<ul>
<li>I am a student at SFS High School</li>
<li>I am an aspiring programmer</li>
<li>Comics, books, programming, casual gaming</li>
<li>4.0 GPA</li>
<li>Star Wars is my life</li>
</ul>
<img src="testbackground.jpg">
</div>
<div id="skills">
<h2>SKILLS</h2>
<ul>
<li>Familiar with Java, HTML, and CSS</li>
<li>Skilled with Microsoft Office Suite 2013</li>
<li>Skilled in math, science, and English</li>
<li>Awesome</li>
</ul>
</div>
<div id="footer">
<p>Copyright © 2015 Sean Anderson</p>
</div>
</div>
</body>
</html>
body {
font-family: Helvetica, sans-serif;
width: 100%;
background-color: white;
margin-left: 0px;
margin-top: 0px;
}
#container {
width: 100%;
background-color: white;
margin-top: 0px;
}
#nav {
background-color: black;
margin-bottom: 0px;
}
#nav ul {
list-style-type: none;
padding: 30px 0px 30px 0px;
text-align: center;
margin-top: 0px;
margin-bottom: 0px;
min-width: 1920px;
}
#nav li {
display: inline;
text-align: center;
}
#nav a {
text-decoration: none;
text-align: center;
color: white;
font-size: 30px;
padding: 30px 50px 30px 50px;
}
#nav a:hover {
background-color: white;
color: black;
}
#headerimage {
background-image: url("testbackground.jpg");
background-repeat: repeat;
height: 1000px;
width: 100%;
margin-top: 0px auto;
display: block;
clear: both;
}
#headerimage h1 {
text-align: center;
vertical-align: middle;
padding-top: 150px;
}
这是 JSFiddle:http://jsfiddle.net/Seanathon98/3nw5wj1d/
(图像占据了我显示器的整个宽度,不知道为什么没有那样显示,因为我确实使用了 width: 100%.
将 H1 元素的边距和填充设置为 0。
h1 {
margin: 0;
padding: 0;
}
您可以通过将 h1 元素的位置设置为绝对位置并使用填充和边距正确定位来使它居中;
#headerimage h1 {
position: absolute;
margin: -20px 0 0 0;
padding: 50% 0 0 0;
}
我绝不是 HTML 或 CSS 方面的专家。我是相当新的,并且没有什么经验。我遇到过问题,但不确定如何解决。正如您从 JSFiddle(下面的链接)中看到的那样,图像和导航栏之间有一个白色的缝隙。该图像是在 CSS 中创建的背景图像。我想消除间隙,使图像与导航栏齐平。
我已经尝试更改#headerimage div 以及#nav div 的边距和填充值。我知道如果我将 margin-top 设置为负值,它可以解决问题,但这是一个非常笨拙的解决方案,因为如果我增加字体大小或类似的东西,我将不得不不断更改该值。我也在 Whosebug 上搜索了类似的问题,但是 none 解决了我的问题。
我也意识到,就我的编码方式而言,我可能会做很多不同的事情,我又是新手。下面的代码是HTML代码,下一段是CSS代码。抱歉,如果我没有解释清楚,如果您需要更多信息,我会尽力进一步详细说明这个问题。非常感谢大家花时间看我的问题。祝一切顺利。如果您发现任何其他问题,无论是可能的错误,还是不是一个好的解决方案,我很乐意在这里讨论。
<html>
<head>
<link rel="stylesheet" type="text/css" href="about.css">
<title>Sean Anderson</title>
</head>
<body>
<div id="container">
<div id="nav">
<ul>
<li><a href="about.html">About</a></li>
<li><a href="achievements.html">Achievements</a></li>
<li><a href="school.html">Academics</a></li>
<li><a href="contact.html">Contact</a></li>
</ul>
</div>
<div id="headerimage">
<h1>SEAN ANDERSON</h1>
</div>
<div id="whoami">
<h2>WHO AM I?</h2>
<ul>
<li>I am a student at SFS High School</li>
<li>I am an aspiring programmer</li>
<li>Comics, books, programming, casual gaming</li>
<li>4.0 GPA</li>
<li>Star Wars is my life</li>
</ul>
<img src="testbackground.jpg">
</div>
<div id="skills">
<h2>SKILLS</h2>
<ul>
<li>Familiar with Java, HTML, and CSS</li>
<li>Skilled with Microsoft Office Suite 2013</li>
<li>Skilled in math, science, and English</li>
<li>Awesome</li>
</ul>
</div>
<div id="footer">
<p>Copyright © 2015 Sean Anderson</p>
</div>
</div>
</body>
</html>
body {
font-family: Helvetica, sans-serif;
width: 100%;
background-color: white;
margin-left: 0px;
margin-top: 0px;
}
#container {
width: 100%;
background-color: white;
margin-top: 0px;
}
#nav {
background-color: black;
margin-bottom: 0px;
}
#nav ul {
list-style-type: none;
padding: 30px 0px 30px 0px;
text-align: center;
margin-top: 0px;
margin-bottom: 0px;
min-width: 1920px;
}
#nav li {
display: inline;
text-align: center;
}
#nav a {
text-decoration: none;
text-align: center;
color: white;
font-size: 30px;
padding: 30px 50px 30px 50px;
}
#nav a:hover {
background-color: white;
color: black;
}
#headerimage {
background-image: url("testbackground.jpg");
background-repeat: repeat;
height: 1000px;
width: 100%;
margin-top: 0px auto;
display: block;
clear: both;
}
#headerimage h1 {
text-align: center;
vertical-align: middle;
padding-top: 150px;
}
这是 JSFiddle:http://jsfiddle.net/Seanathon98/3nw5wj1d/ (图像占据了我显示器的整个宽度,不知道为什么没有那样显示,因为我确实使用了 width: 100%.
将 H1 元素的边距和填充设置为 0。
h1 {
margin: 0;
padding: 0;
}
您可以通过将 h1 元素的位置设置为绝对位置并使用填充和边距正确定位来使它居中;
#headerimage h1 {
position: absolute;
margin: -20px 0 0 0;
padding: 50% 0 0 0;
}