早上好,
当我将display: -webkit-box
的元素嵌套在另一个元素display: -webkit-box
中时,它无法正确地将其元素包含在一个灵活的框中。请参阅下图中删除按钮背后的文字。
LI HTML:
<li>
<div class="reference">
<div class="number">1.</div>
Lawson, B. Sharp, R. (2011). <em>Introducing Html5.</em> New Riders Pub
</div>
<div class="edit">
<button class="delete">Delete</button>
</div>
</li>
LI CSS(省略美学):
li {
display: -webkit-box;
-webkit-box-align: center; /* Vertically center elements within LI */
}
.reference {
-webkit-box-flex: 1; /* Expand to fill space */
display: -webkit-box;
}
.number {
width: 3ex;
padding: 0 5px 0 0;
}
.edit {
/* I have tried setting a width and -webkit-box-flex: 0,
but this does not solve the problem. */
}
当视口宽度改变时,.reference必须保持灵活性。
问题可以通过删除.reference的display: -webkit-box;
来解决,但这意味着我不能在.reference中的元素上使用灵活的盒子模型,我需要保留项目编号(1,2。等等。在他们自己的专栏中。
非常感谢任何帮助。亲切的问候。
答案 0 :(得分:0)
您可以使用display: table
和类似内容来实现您想要的而不是-webkit-box
,您只需要进行一些小的标记更改:
<li>
<div class="reference">
<div class="number">1.</div>
<div class="title">Lawson, B. Sharp, R. (2011). <em>Introducing Html5.</em> New Riders Pub</div>
</div>
<div class="edit">
<button class="delete">Delete</button>
</div>
</li>
CSS:
ul {
display: table;
}
li {
display: table-row;
}
.number {
width: 5%;
display: table-cell;
}
.title {
display: table-cell;
width: 85%;
}
.edit {
display: table-cell;
width: 10%;
}
显然,您需要调整width
属性,但这应该有效并且具有更好的跨浏览器支持。