为什么页面顶部有空行?

时间:2017-09-16 16:47:29

标签: html css margin

我刚学习HTML / CSS几天,我遇到了这个问题: enter image description here 为什么页面顶部有空行?有人能告诉我代码中有什么问题或遗漏吗?我该如何解决?

这是我的代码:

<!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>

提前致谢!

5 个答案:

答案 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来应用样式。

https://github.com/necolas/normalize.css/

答案 2 :(得分:0)

这是因为您的h1有边距。要解决此问题,您需要重置h1 margin-top,如下所示:

h1 {
  margin-top: 0;
}

这是工作片段:

&#13;
&#13;
<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;
&#13;
&#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;
}