出于某种原因,我似乎无法将此列表元素置于页面中心。它包含三个大小相同的盒子,我希望它们始终坚持到中心。
body {
width: 100%;
}
.boxes {
display: block;
margin: 0 auto;
}
.box-container {
display: block;
margin: 0 auto;
border: 1px solid blue;
}
.all {
float: right;
width: 100px;
height: 100px;
background: red;
margin: 10px 10px 10px 10px;
}
.clear {
clear: both;
}
<body>
<div class="box-container">
<div class="box1 all"></div>
<div class="box2 all"></div>
<div class="box3 all"></div>
<div class="clear"></div>
</div>
</body>
答案 0 :(得分:1)
要使margin: auto
起作用,您的元素需要以某种方式给予它们宽度(通常通过width
)。使事情自动扩展的常用解决方案是display: inline-block;
(虽然flexbox使得很多在支持时更容易):
.box-container {
display: inline-block;
text-align: left;
}
然后你给它的父text-align: center;
。或者,width: 300px;
(可能稍作调整或删除空格)似乎可以在这里运作良好;这取决于你的实际布局。
body
不需要width: 100%;
。
答案 1 :(得分:0)
对于您想要水平居中的所有内容,您应将其margin-left和margin-right设置为'auto'。
答案 2 :(得分:0)
给你的盒子容器一个宽度:
CSS
.box-container {
display: block;
margin: 0px auto;
width: 360px;
border: 1px solid blue;
}
答案 3 :(得分:0)
从每个float: right
课程中删除all
。这导致盒子向右移动。将box-container
中心对齐(这会将它们带到中心),然后将每个框的显示更改为inline-block
。
.box-container {
display: block;
margin: 0 auto;
border: 1px solid blue;
text-align: center;
}
.all {
width: 100px;
height: 100px;
background: red;
margin: 10px 10px 10px 10px;
display: inline-block;
}
答案 4 :(得分:0)
尝试:
.box-container {
text-align:center;
}
.all {
display:inline-block;
}
注:
inline-block
在元素之间留下空白区域。要删除此空间,请在同一行上写入元素,而不是将它们写在单独的行上。
变化:
到
<div class="box-container">
<div class="box1 all"></div><div class="box2 all"></div><div class="box3 all"></div>
</div>
答案 5 :(得分:0)
尝试使用它完美无缺:
<强> HTML 强>
<body>
<div class="box-container">
<div class="box1 all"></div>
<div class="box2 all"></div>
<div class="box3 all"></div>
<div class="clear"></div>
</div>
</body>
<强> CSS 强>
body {
width: 100%;
}
.boxes {
display: block;
margin: 0 auto;
}
.box-container {
display: block;
margin: 0 auto;
border: 1px solid blue;
}
.all {
background: none repeat scroll 0 0 red;
float: right;
height: 100px;
margin-right: 13%;
width: 100px;
}
.clear {
clear: both;
}