首先,请原谅我的无知,近14年来我没有玩HTML,我正在努力熟悉新的标准和修订版。我有一个我正在尝试的布局,我的容器块元素似乎没有绝对水平居中。不幸的是,我不知道为什么会这样,我希望你们中的一个能够找出错误,或者解释为什么会发生这种情况。
谢谢!
HTML
<!DOCTYPE HTML>
<div class="container">
<div id="contentMain">
<div class="titleBar">
<p>Main Content Title Element @ 960px</p>
</div>
<div class="containerContent">
<p>Main Content Area Element</p>
</div>
</div>
</div>
CSS
.container {
margin-left:auto;
margin-right:auto;
background-color:#F00;
min-width:996px;
width:2px;
}
.containerContent {
padding:4px;
}
.titleBar {
padding:4px;
}
#contentMain {
margin-top:2px;
margin-bottom:4px;
margin-left:4px;
margin-right:4px;
border:1px dashed #000;
background-color:#FFF;
float:left;
width:960px;
height:200px;
clear:both;
}
p {
padding:0px;
margin:0px;
font-family:Arial, Helvetica, sans-serif;
font-size:12px;
font-style:normal;
font-variant:normal;
font-weight:normal;
}
答案 0 :(得分:1)
使用display: inline-block
和text-align: center
为父div text-align: center
和子div display: inline-block
。
HTML
<div class="container">
<div class="block"></div>
<div class="block"></div>
<div class="block"></div>
</div>
CSS
.container{
float: left;
width: 100%;
border: 1px solid blue;
text-align: center;
}
.block{
width: 30%;
display: inline-block;
height: 300px;
border: 1px solid red;
}
答案 1 :(得分:0)
您的.container
div完全居中,但其内容并未填满整个宽度。
看看这个小提琴:http://jsfiddle.net/74ngf/5/
如您所见,容器有一个红色背景,超出其内容。要解决此问题,您需要手动获取内容的宽度,例如:
#contentMain {
margin-top:2px;
margin-bottom:4px;
margin-left:4px;
margin-right:4px;
border:1px dashed #000;
background-color:#FFF;
float:left;
width:986px; /* this is the important part */
height:200px;
clear:both;
}
(更新小提琴:http://jsfiddle.net/74ngf/8/)
986px
来自哪里?
容器的宽度为996px
。 #contentMain
的左右边距为4px
,两边的边框宽度为1px
。如果它应该水平填充容器,那么它必须具有(996 - 2*4 - 2*1) px
的宽度986px
。
或者你可以考虑使用不同的布局方法,正如Chanckjh所说的那样。
答案 2 :(得分:0)
如果您的容器宽度是固定的,您可以使用margin-left:auto;
margin-right:auto;
通过简单的方法对您的div进行居中
<div class="container">
Text and container both are center align
</div>
.container {
width:80%;
margin:0px auto;
text-align:center;
border:1px solid #ccc;
height:150px;
}