在这个简化的例子中,我有一个书柜,书架上放着书。书柜是具有定义宽度的最外层元素。书架上的书应该从左到右出现,没有包装。书架应该伸展它的宽度以显示其架子上的所有书籍。所有书架的宽度必须相同,即最宽书架的宽度。
我的 HTML:
<div class="bookcase">
<div class="bookshelf">
<div class="book">
<div class="book">
<div class="book">
</div>
<div class="bookshelf">
<div class="book">
<div class="book">
<div class="book">
<div class="book">
</div>
<div class="bookshelf">
<div class="book">
</div>
</div>
我的 CSS:
.bookcase {
width: 40%;
height: 300px;
margin: 0 auto;
background: lightgrey;
overflow-x: auto;
}
.bookshelf {
background: lightgreen;
white-space: nowrap;
}
.book {
display: inline-block;
height: 60px;
width: 60px;
background: pink;
}
当前代码的问题是,当书架宽度小于最长书架并且书架使溢出可滚动时,书架元素不会拉伸以适应所有书籍。目前,书架似乎将它们的宽度定义为等于父书柜。
这些图片说明了这个问题。这是书柜的正常外观,很好:
或者
但是当你在书柜狭窄的情况下向右滚动时,书架的绿色背景会被切断,而不是到达最后一本书的右侧:
如何让书架占据溢出元素的整个宽度,而不是书柜父容器的宽度?