为啥页面顶部有一个空行? [复制]
Posted
技术标签:
【中文标题】为啥页面顶部有一个空行? [复制]【英文标题】:Why there is a blank line at the top of the page? [duplicate]为什么页面顶部有一个空行? [复制] 【发布时间】:2018-02-25 15:03:53 【问题描述】:我刚刚学习 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>
提前致谢!
【问题讨论】:
【参考方案1】:标签 h1 的边距在 css 中设为零。
header h1
margin: 0px;
【讨论】:
【参考方案2】:要解决这个问题,您可以在头文件类中添加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>
【讨论】:
【参考方案3】:上面的空行是浏览器默认的css样式造成的。
使用 normalize.css 将所有浏览器应用的 CSS 重置为一个通用的。这样您就有了应用样式的水平游乐场。
https://github.com/necolas/normalize.css/
【讨论】:
【参考方案4】:这是因为 父元素和第一个子元素 margin collapsing
在h1
与其父元素的边距之间
一种解决方案是添加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>
【讨论】:
我可以使用 reset.css 文件来防止这种情况吗? reset 会将margin
设置为 zero 我猜 - 所以这也可以工作......
我明白了。非常感谢:))【参考方案5】:
这是因为您的h1
有边距。要解决此问题,您需要像这样重置h1
的margin-top
:
h1
margin-top: 0;
这里是工作的 sn-p:
<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>
【讨论】:
你能告诉我为什么我应该申请 'margin-top: 0;'到 但不是 ?
@DunDev,因为在开发人员工具 inspectoe 中我们可以看到,header
没有边距,h1
有顶部和底部边距,但只有顶部边距会破坏您的标记。以上是关于为啥页面顶部有一个空行? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
为啥即使另一个活动在顶部,launchMode="singleTask" 的启动器活动总是被推到后台堆栈的顶部? [复制]