HTML:
<body>
<p>Some content</p>
</body>
CSS:
body {
margin: 0 auto;
width: 470px;
background-color: cyan;
}
https://jsfiddle.net/tsLu98tL/
为什么这不会一直居中,为什么颜色会扩展到整个页面而不是470px?
答案 0 :(得分:3)
实体 取这个宽度, 居中。它只是一个CSS怪癖,它使背景占据了整个页面,而不是身体元素实际占用的空间。
解决此问题的方法是在background
代码中加入html
属性。
Here's一个例子。
然而,正如其他人所说,这可能不是你想要做的事情。最好在主体和样式中添加div
。
答案 1 :(得分:1)
当<html>
元素没有指定背景时,正文背景将覆盖页面。如果html元素 具有指定的背景,则正文背景将与任何其他元素一样。
来自W3:
但是,对于HTML文档,我们建议作者指定 BODY元素的背景而不是HTML元素。对于 其根元素是HTML&#34; HTML&#34;元素或XHTML &#34; HTML&#34;计算了&#39;透明&#39;的值的元素对于 &#39;背景色&#39;并且没有&#39;对于&#39; background-image&#39;,用户代理必须 而是使用背景属性的计算值 元素的第一个HTML&#34; BODY&#34;元素或XHTML&#34; body&#34;元素孩子的时候 绘画画布背景
基本上你的代码很好,内容以为中心,但你在身体上指定的背景也被应用到<html>
。当您为<html>
元素提供白色背景时,您可以看到差异:
<强> jsFiddle example 强>
答案 2 :(得分:0)
您的CSS正在整个页面上应用这些属性。
也许你在寻找这个:
p { //body changed to p
margin: 0 auto;
width: 470px;
background-color: cyan;
}
答案 3 :(得分:0)
您无法在正文上设置宽度,它由浏览器大小定义。编辑你的html以包含内部内容,它将正常工作。
<body>
<div id="content">
<p>Some content</p>
</div>
</body>
答案 4 :(得分:0)
您将for i in friends:
视为body
元素。这导致文本居中。而是附上你的
<div>
内的 <p>Some content</p>
,可能会给它<div>
HTML:
class
CSS:
<body>
<div class="name"
<p>Some content</p>
</div>
</body>
如果您不想使用.name{
margin: 0 auto;
width: 470px;
background-color: cyan;
text-align: center;
}
或class
或id
,则可以简单地将所有<div>
更改为该css
<p>
答案 5 :(得分:0)
在浏览器中,<body></body>
表示主容器,宽度表示浏览器。
如果你想将所有内容放入体内,可以简单地尝试一下:
body {
margin: 0px auto;
text-align: center;
background-color: cyan;
}
<body>
<p> Content </p>
</body>
我更喜欢将内容添加到<div></div>
。