一个元素不能居中,因为有些东西看起来不对

one element must not be centered, as something does not look right

我正在尝试创建一个网页,其中所有内容都位于中心 40%,但顶部标题似乎没有以水平导航栏为中心。看看左边的 space 似乎比右边的多,文本比导航栏长?

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Sample test page</title>
<style>
#navigation li {
    font 34px Arial;
    display: inline-block;
    list-style-type: none;

}

#navigation a {
    background: #140913;
    -moz-border-radius: 3px;
    -webkit-border-radius: 3px;
    border-radius: 3px;
    display: inline-block;
    cursor: pointer;
    color: #ffffff;
    font-size: 18px;
    padding: 5px 19px;
    text-decoration: none;
    text-shadow: 0px 1px 0px #2f6627;
}

#navigation a:hover {
    background: #4a3a4a;
    text-decoration: none;
}





#text {
    width: 90%;
    margin: 0 auto;
    text-align: left;
}

#background {
    background-size: 100% auto;
}

.stretch {
    width:100%;
    height:100%;
}

body {
    margin-top: auto;
    margin-right: auto;
    margin-left: auto;
    margin-bottom: auto;
    text-align: center;
    width: 50%

}

footer { 
    margin: auto; 
    text-align: center;
}


</style>
</head>

<body>
<nav>
  <div id="navigation">
  <ul>
    <li><a href="#">AAAAAAA</a></li>
    <li><a href="#">BBBBB</a></li>
    <li><a href="#">CCCCCCC</a></li>
    <li><a href="#">DDDDDDD</a></li>
    <li><a href="#">EEEEEEE</a></li>
    <li><a href="#">FFFFF</a></li>
    <li><a href="#">GGGGGGG</a></li>
  </ul>
  </div>
</nav>
<div id="background"> <br />
</div>
<div id="wordcloud">
  <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit quisque malesuada erat sed sagittis gravida<br /> suspendisse in sem sed magna ultrices.</p>
</div>
<div id="wordclouddescription">
  <h2>The sentence will be aproximitely the same size here as on the final product, thankyou very much.</h2>
  <p>&nbsp;</p>
  <div id="text">  </div>
</div>
</body>
</html>

我想你必须重新设置你的 ul,它仍然有 40px 的填充。

#navigation ul {
  padding: 0;
  margin: 0;
}

首先您需要重置浏览器默认样式。您可以从互联网上使用 reset.css。

截至目前,您可以使用 ul{padding:0px;} 样式,它将适合您的屏幕居中。 默认情况下,浏览器将采用“-webkit-padding-start: 40px;” ul 元素的样式因此,您需要使用此样式 ul{padding:0px;}.

删除该购买

假设您从头开始,不受 WordPress、CMS 等限制,从 reset stylesheet 开始。我没有从头开始的自由(我网站的后端由供应商 运行 提供),但在我的头脑中,我会使用:

    html {
    box-sizing: border-box;
}
*, *:before, *:after {
    box-sizing: inherit;
    margin: 0;
    padding: 0;
}

html 将遵循边框大小规则:

元素的宽度和高度被视为元素的渲染宽度和高度。

默认情况下 box-sizing 是 padding-box:

宽高+内边距+边框被认为是元素的渲染宽高。

因此默认情况下,200 像素 div 填充 20 像素和边框 1 像素的内容将以 158 像素呈现。 Border-box 呈现相同的元素,因此相同的 div 将以 200px 呈现元素的内容。

下一条规则 *, *:before, *:after { box-sizing: inherit; 使其余元素遵循边框大小,但允许您在需要时选择将任何元素更改为内容框或填充框(虽然真的想不出这样做的好理由。)

规则 padding:0; margin:0; 用于所有元素,因为浏览器强加了大量隐藏的默认填充和边距。

因此,使用这些规则可以使元素的行为与您预期的布局方式非常相似。阅读 this for a better explanation.

我制作了您的演示 Fiddle,并添加了前面提到的规则。我还更改了导航和#wordclouddescription 的填充和边距,使它们看起来居中。我想这就是你想要的,我不太确定,因为你没有现场演示。