【发布时间】:2017-03-14 20:41:54
【问题描述】:
我有一个可以包含任意数量元素的有序列表。每个元素的大小可以不同,但无论大小如何,我都希望有序列表的数量与内容的第一行对齐。所以我想要实现的是:
- Lorem ipsum dolor sit amet, consectetur adipiscing elit...
- 框 1
请参阅我的 jsfiddle 以了解我遇到的问题。
https://jsfiddle.net/txo5bsua/2/
这是我拥有的 HTML 和 CSS
.boxes {
display: table;
width: 100%;
height: 100%;
}
.box {
display: table-cell;
}
.box1 {
background: orange;
width: 75%;
}
.box2 {
background: yellow;
}
<ol>
<li>
<div class="boxes">
<div class="box box1">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi quis condimentum massa. Quisque purus nisl, finibus id placerat id, ultricies non magna. Sed justo dui, tristique et metus at, fringilla viverra ipsum. Duis malesuada est eget lectus fermentum,
vitae pretium eros tempor. Integer eu mi metus. Cras dui ipsum, iaculis ut libero dictum, dapibus consequat orci. Sed semper vitae lorem eu sollicitudin. Curabitur dapibus fringilla facilisis. Nullam facilisis ante in velit maximus gravida.
</div>
<div class="box box2">
<input type="radio">Yes
<input type="radio">No
</div>
</div>
</li>
<li>
<div class="boxes">
<div class="box box1">Box 1</div>
<div class="box box2">Box 2</div>
</div>
</li>
</ol>
你能帮我解决这个问题吗?
【问题讨论】:
-
你还想要 .boxes 之间的间隙吗?
-
(有趣:我认为内容在 Firefox 上的呈现方式完全符合您的要求。在 Google Chrome 和 Safari 上,我看到内容开始之前的有序列表。所以我认为您的目标是摆脱所有浏览器中的视觉换行符,对吗?)
-
将 display:table 更改为 display:inline-flex in class .boxes
-
@chirag 将 table 更改为 inline-flex 会使内容的顶部对齐,但当您从第一行转到第二行时,它也会导致分隔两列的垂直线发生变化。 ..(或者至少这是我观察到的;我将把我的小提琴与你现在在答案中发布的内容进行比较......)
-
(只有在浏览器宽度足够窄时才会出现单元格宽度在行之间变化的问题,但对于我来说,@chirag 的 jsfiddle 确实会出现这种情况......)