我刚学习HTML / CSS几天,我遇到了这个问题: 为什么页面顶部有空行?有人能告诉我代码中有什么问题或遗漏吗?我该如何解决?
这是我的代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
body {
margin: 0;
padding: 0;
}
header {
text-align: center;
background-color: lightgray;
}
header h1 {
font-size: 70px;
}
ul {
background-color: gray;
padding: 10px;
}
li {
display: inline;
margin: 0 5px 0 5px;
}
a {
color: white;
text-decoration: none;
text-transform: uppercase;
font-size: 18px;
}
</style>
</head>
<body>
<header>
<h1>My Website</h1>
<p>A sample website</p>
<ul>
<li><a href="#">HOMEPAGE</a></li>
<li><a href="#">ABOUT ME</a></li>
<li><a href="#">CONTACT</a></li>
</ul>
</header>
</body>
</html>
提前致谢!
答案 0 :(得分:3)
这是因为h1
与其父元素边缘之间的父级和第一个孩子 margin collapsing
一种解决方案是添加border: 1px solid lightgray
或添加padding
,或者您可以将margin
本身重置为零 - 请参阅下面的演示:
body {
margin: 0;
padding: 0;
}
header {
text-align: center;
background-color: lightgray;
border: 1px solid lightgray;
}
header h1 {
font-size: 70px;
}
ul {
background-color: gray;
padding: 10px;
}
li {
display: inline;
margin: 0 5px 0 5px;
}
a {
color: white;
text-decoration: none;
text-transform: uppercase;
font-size: 18px;
}
<header>
<h1>My Website</h1>
<p>A sample website</p>
<ul>
<li><a href="#">HOMEPAGE</a></li>
<li><a href="#">ABOUT ME</a></li>
<li><a href="#">CONTACT</a></li>
</ul>
</header>
答案 1 :(得分:1)
以上空白行是由浏览器默认的css样式引起的。
使用normalize.css将所有浏览器应用的CSS重置为常用浏览器。这样你就可以使用等级playgroud来应用样式。
答案 2 :(得分:0)
这是因为您的h1
有边距。要解决此问题,您需要重置h1
margin-top
,如下所示:
h1 {
margin-top: 0;
}
这是工作片段:
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
body{
margin: 0;
padding: 0;
}
header{
text-align: center;
background-color: lightgray;
}
header h1{
font-size: 70px;
margin-top: 0;
}
ul{
background-color: gray;
padding: 10px;
}
li{
display: inline;
margin: 0 5px 0 5px;
}
a{
color: white;
text-decoration: none;
text-transform: uppercase;
font-size: 18px;
}
</style>
<body>
<header>
<h1>My Website</h1>
<p>A sample website</p>
<ul>
<li><a href="#">HOMEPAGE</a></li>
<li><a href="#">ABOUT ME</a></li>
<li><a href="#">CONTACT</a></li>
</ul>
</header>
</body>
&#13;
答案 3 :(得分:0)
要解决此问题,您可以在标题类中添加margin-top:-45px;
。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
body {
margin: 0;
padding: 0;
}
header {
text-align: center;
margin-top:-45px;
background-color: lightgray;
}
header h1 {
font-size: 70px;
}
ul {
background-color: gray;
padding: 10px;
}
li {
display: inline;
margin: 0 5px 0 5px;
}
a {
color: white;
text-decoration: none;
text-transform: uppercase;
font-size: 18px;
}
</style>
</head>
<body>
<header>
<h1>My Website</h1>
<p>A sample website</p>
<ul>
<li><a href="#">HOMEPAGE</a></li>
<li><a href="#">ABOUT ME</a></li>
<li><a href="#">CONTACT</a></li>
</ul>
</header>
</body>
</html>
答案 4 :(得分:0)
标签h1的边距在css中为零。
header h1{
margin: 0px;
}