【问题标题】:css reset margin problem.i cant get rid of marginCSS重置边距问题。我无法摆脱边距
【发布时间】:2022-03-19 05:36:13
【问题描述】:

我的问题是我的页眉应该占据整个页面的顶部,但由于某种原因,两边都有边距。我试过 * margin :0 padding :0 但不起作用. 当我添加div.container 边距时出现。我添加了 .container ,因为当我扩大页面时,我希望我的名字和导航保持在中间,并在两侧留出一些空间。作为我分享的图片,但没有空白/那个边距。我希望我能解释 感谢你的帮助 谢谢。

 * {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

a {
  text-decoration: none;
  color: black
}

html {
  font-family: 'Space Mono', monospace, sans-serif;
}

#navbar {
  background-color: yellow;
  color: black;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.75rem 2rem 0.75rem 1rem;
}

#navbar ul {
  list-style-type: none;
  display: flex;
  align-items: center;
}

#navbar ul li a {
  padding-left: 0.75rem;
}

.container {
  max-width: 1100px;
  margin: 0 auto;
<html>
<head>
</head>

<body>

  <header>
    <div class="container">
      <nav id="navbar">
        <h1 class="">Hayden Dominic Christiansen</h1>
        <ul>
          <li><a href="#home">Home</a></li>
          <li><a href="#portfolio">Portfolio</a></li>
          <li><a href="#bio">Bio</a></li>
          <li><a href="#contact">Contact</a></li>
        </ul>
      </nav>
    </div>
  </header>

</body>

</html>

【问题讨论】:

  • 从你的 CSS 中移除 `.container`。它会起作用的。
  • 我需要它,我添加了 .container,因为当我扩大页面时,我希望我的名字和导航保持在中间,并从侧面留出一些空间。就像我分享的图片但没有空格/那个边距.我希望我能解释一下

标签: html css margin


【解决方案1】:

将颜色添加到标题。见下文:

 * {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

a {
  text-decoration: none;
  color: black
}

html {
  font-family: 'Space Mono', monospace, sans-serif;
}

header { background: yellow; }
 
#navbar {
  color: black;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.75rem 2rem 0.75rem 1rem;
}

#navbar ul {
  list-style-type: none;
  display: flex;
  align-items: center;
}

#navbar ul li a {
  padding-left: 0.75rem;
}

.container {
  max-width: 1100px;
  margin: 0 auto;
<html>
<head>
</head>

<body>

  <header>
    <div class="container">
      <nav id="navbar">
        <h1 class="">Hayden Dominic Christiansen</h1>
        <ul>
          <li><a href="#home">Home</a></li>
          <li><a href="#portfolio">Portfolio</a></li>
          <li><a href="#bio">Bio</a></li>
          <li><a href="#contact">Contact</a></li>
        </ul>
      </nav>
    </div>
  </header>

</body>

</html>

【讨论】:

  • Ooooooh!!!。我好几个小时都没看到它。非常感谢。它按我的意愿工作
【解决方案2】:

您可能需要在 body 标签上添加边距和内边距。

body{
  margin:0;
  padding:0;
  box-sizing: border-box;
} 
a{
  text-decoration: none;
  color:black
}

header {
    width: 100%;
}

html{
 font-family: 'Space Mono', monospace,sans-serif;
}

#navbar{
   background-color: yellow;
  color: black;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding:0.75rem 2rem 0.75rem 1rem;
  
}
#navbar ul{
  list-style-type: none;
   display: flex; 
  align-items: center;
}
#navbar ul li a {
  padding-left: 0.75rem;
} 
</head>
<body>
 
<header>
   <div class="container"> 
  <nav id="navbar">
    <h1 class="">Hayden Dominic Christiansen</h1>
    <ul>
      <li><a href="#home">Home</a></li>
      <li><a href="#portfolio">Portfolio</a></li>
      <li><a href="#bio">Bio</a></li>
      <li><a href="#contact">Contact</a></li>
    </ul>
  </nav>
  </div> 
</header>

</body>
</html>

【讨论】:

  • 我试过但没用:/我试过 html ,header,body。两者都在一起或分开
  • 你能解释更多你想要达到的目标吗?
  • 当我添加 div 容器时,我希望所有背景颜色覆盖页面顶部。当我把它放光或长大时
  • 您是否已从 css 中删除了 .container 并添加了上述标头?当我在上面运行时,它就像你解释的那样工作。
  • 哦,我明白你的意思,但我想,我误导了你。我添加了 .container ,因为当我扩大页面时,我希望我的名字和导航保持在中间,并在两侧留出一些空间。作为我分享的图片,但没有空白/那个边距。我希望我能解释一下
【解决方案3】:

从 .container 选择器中删除 max-width 属性,因为它会将导航栏的宽度固定为最大 1100 像素。删除它会解决您的问题。

 * {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

a {
  text-decoration: none;
  color: black
}

html {
  font-family: 'Space Mono', monospace, sans-serif;
}

#navbar {
  background-color: yellow;
  color: black;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.75rem 2rem 0.75rem 1rem;
}

#navbar ul {
  list-style-type: none;
  display: flex;
  align-items: center;
}

#navbar ul li a {
  padding-left: 0.75rem;
}

.container {
  /* max-width: 1100px; Remove this line as it is fixing the navbar to a max of 1100px */
  margin: 0 auto;
}
<html>
<head>
</head>

<body>

  <header>
    <div class="container">
      <nav id="navbar">
        <h1 class="">Hayden Dominic Christiansen</h1>
        <ul>
          <li><a href="#home">Home</a></li>
          <li><a href="#portfolio">Portfolio</a></li>
          <li><a href="#bio">Bio</a></li>
          <li><a href="#contact">Contact</a></li>
        </ul>
      </nav>
    </div>
  </header>

</body>

</html>

【讨论】:

    【解决方案4】:

    那就试试这个 header.container {margin: 0 !important; padding: 0 &gt;!important}

    并因此失去工作 xD 首先,如果你发现自己在自己的风格中使用了重要的东西,那你就做错了。 其次,他的容器是一个 div,div 没有任何默认边距或填充 - 无需设置为 0。

    【讨论】:

    • 请在您的声明中添加来源。虽然在大多数情况下应该避免使用 !important,但有信誉良好的来源(如 CSS-tricks)指出 !important 可能存在用例,因此不应过度概括。请在您的答案中添加代码示例。
    【解决方案5】:

    如果您不希望容器类上的边距,请尝试添加

    .container {
      margin: 0;
     padding: 0
    }
    

    【讨论】:

    • 然后试试这个```` header.container {margin: 0 !important;填充:0!重要}````