[英]Aligning content side by side using div
我有两个div
。 一个div
表示标题内容,另一个div
表示详细信息内容。 我想要两个div
并排对齐的内容。 右div的内容(即详细信息)应始终显示在右侧。 如果详细内容不适合,则extra
内容应出现在下一行。 如下所示,File4.pdf和File5.pdf不合适,因此转到下一行。
我能够使用table
做到这一点,但我想使用div
而不是表。 但是,当内容不合适时,使用div
将整个内容移至下一行。
这是JSfiddle
您将需要一个具有以下样式的右侧元素的容器
float:left;
width:calc(100% - 222px); /*the -222px is the width of the left element + the padding + the margin*/
overflow:hidden;
完整的更新示例( 来自提供的jsfiddle )
dl { margin-bottom: 30px; } dl dt { float: left; font-weight: bold; margin-right: 2px; width: 200px; } dl dd { margin: 2px 0; } .details-container { float: left; width: calc(100% - 222px); overflow: hidden; }
<div style="float:left;padding-right:20px;"> <dl> <dt>Name:</dt> <dd>Foo Bar</dd> <dt>Date:</dt> <dd>01/04/2017</dd> </dl> </div> <div class="details-container"> <div style="float:left"> <dl> <dt>File Name:</dt> <dd>File1.pdf</dd> <dt>Page Count</dt> <dd>10</dd> </dl> </div> <div style="float:left"> <dl> <dt>File Name:</dt> <dd>File2.pdf</dd> <dt>Page Count</dt> <dd>10</dd> </dl> </div> <div style="float:left"> <dl> <dt>File Name:</dt> <dd>File3.pdf</dd> <dt>Page Count</dt> <dd>10</dd> </dl> </div> <div style="float:left"> <dl> <dt>File Name:</dt> <dd>File4.pdf</dd> <dt>Page Count</dt> <dd>10</dd> </dl> </div> </div>
您应该更加精确地确定自己想要的是什么,因为有多种不同的方法可以实现此目标,具体取决于“细节”每行中元素的数量是否固定,是否希望响应,或者是固定大小元素中其他内容的一部分? 如果div中的任何列表太大,是否要显示滚动条?
以下是一些线索:
FlexBox ??
<div class="container">
<div class="left">
<div class="item">
<div class="title">Title</div>
<div class="value">Value asd asd as das d</div>
</div>
</div>
<div class="right">
<div class="item">
<div class="title">Title</div>
<div class="value">Value asd asd as</div>
</div>
<div class="item">
<div class="title">Title</div>
<div class="value">Value adasd</div>
</div>
<div class="item">
<div class="title">Title</div>
<div class="value">Value</div>
</div>
<div class="item">
<div class="title">Title</div>
<div class="value">Value</div>
</div>
<div class="item">
<div class="title">Title</div>
<div class="value">Value</div>
</div>
</div>
</div>
.container {
display: flex;
}
.item {
padding-bottom: 30px;
}
.container .left {
display: flex;
align-items: center;
padding-right: 50px;
}
.container .right {
display: flex;
width: 70%;
flex-wrap: wrap;
}
.container .right .item {
width: 30%;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.