我有2个div,它们是父div的子节点,每个div的宽度都是百分比(重要的是:我需要宽度为百分比)。但诀窍在这里,我需要将整个事情与页面的中心对齐,这似乎不可能使用margin auto技巧。请帮忙!
到目前为止,这是代码:
<div class="container" style="display: inline-block; width: 100%;">
<div style="margin: 0px auto;">
<div class="child1" style="width: 40%; float: left; background: lightblue;">Testing Child 1</div>
<div class="child2" style="width: 30%; float: left; background: lightgreen">Testing Child 2</div>
</div>
</div>
答案 0 :(得分:4)
您正在使用浮点数,这些浮点数将从常规文档流中取出元素。我将您的.container
定义为弹性框,并通过CSS将孩子集中在一起。
.container {
display: flex;
justify-content: center;
}
.child1 {
width: 40%;
background-color: lightblue;
}
.child2 {
width: 30%;
background-color: lightgreen;
}
<div class="container">
<div class="child1">Testing Child 1</div>
<div class="child2">Testing Child 2</div>
</div>
答案 1 :(得分:1)
您可以使用 Flexbox 执行此操作:
.container {
display: flex; /* displays flex-items (children) inline */
justify-content: center; /* centers them horizontally */
}
<div class="container">
<div class="child1" style="width: 40%; background: lightblue">Testing Child 1</div>
<div class="child2" style="width: 30%; background: lightgreen">Testing Child 2</div>
</div>
答案 2 :(得分:0)
你可以这样使用吗?
<div class="container" style="display: inline-block; width: 100%;text-align: center">
<div style="margin: 0px auto;">
<div class="child1" style="width: 40%; float: none; background: lightblue;display: inline-block;">Testing Child 1</div><!--
--><div class="child2" style="width: 30%; float: none; background: lightgreen;display: inline-block;">Testing Child 2</div>
</div>
</div>
它可能适合你:)
答案 3 :(得分:0)
也许尝试这种方法:
#box {
position: absolute;
transform: translate(-50%, -50%);
top: 50%;
left: 50%;
}
&#13;
<div class="container" style="display: inline-block; width: 100%;text-align: center">
<div id="box" style="margin: 0px auto; width: 100%;">
<div class="child1" style="width: 40%; float: none; background: lightblue;display: inline-block;">Testing Child 1</div><!--
--><div class="child2" style="width: 30%; float: none; background: lightgreen;display: inline-block;">Testing Child 2</div>
</div>
</div>
&#13;
答案 4 :(得分:-1)
您可以通过以下方式在容器的左右两侧添加15%的填充:
.container {
display: inline-block;
width: 100%;
padding: 0 15%;
background: red;
}
.child1 {
float: left;
width: 40%;
background: lightblue;
}
.child2 {
float: left;
width: 30%;
background: lightblue;
}
&#13;
<div class="container">
<div class="child1">Testing Child 1</div>
<div class="child2">Testing Child 2</div>
</div>
&#13;
希望这有帮助。