我希望将三个 div 水平堆叠(彼此相邻)在一个包含的 div 中。这个包含的 div 具有流体宽度,因此当浏览器缩放时(这是针对响应式设计),三个子 div 会按比例缩放。此外,三个子 div 必须单独定位,以便最左边的 div 位于左侧,中间的 div 居中,最右边的 div 一直位于包含 div 的右侧。
我尝试通过将容器 div 设置为显示:表格和将三个子 div 设置为显示:表格单元格来实现此目的 - 这非常有效,除了我无法将三个子 div 放置在其中我上面描述的方式。我尝试在父 div 上设置边框间距;然而,这并不能很好地实现我的目标。
这是我的代码:http://jsfiddle.net/mkerny45/97mt7/7/
所需结果的屏幕截图:http://d.pr/i/KUfd (在这里你会看到三个子div:在包含div中的左,中,右。左和右div分别一直到左/右侧,中心div位于包含div的中心。边距也是如图所示。我希望整个包含的 div 和子 div 按比例缩小,并使子 div 始终保持在适当的位置。)
代码
<div class="articles">
<article>
<img src="http://placehold.it/380x214/000000&text=Left" />
</article>
<article>
<img src="http://placehold.it/380x214/3D6AA2&text=Middle" />
</article>
<article>
<img src="http://placehold.it/380x214/98BD56&text=Right" />
</article>
</div>
最佳答案
您可以使用 text-align:justify 均匀地间隔 div 来实现此目的,以便它们与边缘齐平。然后添加一个宽度为 100% 的 span 类来强制包装器的宽度。
演示 -> http://jsfiddle.net/spUKQ/2/
HTML
<div id="container">
<div class="box1"></div>
<div class="box2"></div>
<div class="box3"></div>
<span class="stretch"></span>
</div>
CSS
#container {
border: 2px dashed #444;
height: 125px;
text-align: justify;
-ms-text-justify: distribute-all-lines;
text-justify: distribute-all-lines;
/* just for demo */
min-width: 612px;
}
.box1, .box2, .box3 {
width: 150px;
height: 125px;
vertical-align: top;
display: inline-block;
*display: inline;
zoom: 1
}
.stretch {
width: 100%;
display: inline-block;
font-size: 0;
line-height: 0
}
/* just for demo */
.box1, .box3 {
background: #ccc
}
.box2 {
background: #0ff
}
关于html - 如何以流体比例在父div中水平堆叠三个div并单独定位每个子div?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14242415/