一个元素不能居中,因为有些东西看起来不对
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> </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 的填充和边距,使它们看起来居中。我想这就是你想要的,我不太确定,因为你没有现场演示。
我正在尝试创建一个网页,其中所有内容都位于中心 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> </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 的填充和边距,使它们看起来居中。我想这就是你想要的,我不太确定,因为你没有现场演示。