我正在开发带有引导程序和一些flex容器的布局,似乎无法找出为什么我的盒子总是比容器大。我创建了一个小提琴来说明问题: example fiddle
html部分如下所示:
<div class="container-fluid overflow-hidden">
<div class="row flex-nowrap">
<div class="col const-width">
const
</div>
<div class="col">
<div class="bigcontent">
some very very very very very very very very very very very big content
</div>
</div>
<div class="col const-width">
const
</div>
</div>
</div>
css是这样的:
.const-width {
max-width: 100px !important;
min-width: 100px !important;
}
.bigcontent {
background: #aaaaaa;
white-space: nowrap;
}
如您所见,我在侧面有两个等宽的框,一个灵活的框应占据其他两个框之间的其余空间。如果灵活宽度框的内容太大,则会将最右边的框弹出屏幕。相反,我想要的是弹性宽度框的内容可滚动,并且所有内容都保留在屏幕上。
我通过将内容包装在另一个div中来尝试此操作,但是无法使其正常工作。
感谢您的帮助! :)
答案 0 :(得分:2)
看起来像这样吗?
.row {
background: #f8f9fa;
margin-top: 20px;
}
.col {
border: solid 1px #6c757d;
padding: 10px;
overflow-x:auto!important;
}
.const-width {
max-width: 100px !important;
min-width: 100px !important;
}
.bigcontent {
background: #aaaaaa;
min-width: 500px;
white-space: nowrap;
}
<script type="text/javascript" src="https://code.jquery.com/jquery-3.4.1.slim.js"></script>
<link rel="stylesheet" type="text/css" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.css">
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.js"></script>
<script type="text/javascript" src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.js"></script>
<link rel="stylesheet" type="text/css" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.css">
<div class="container overflow-hidden">
<div class="row flex-nowrap">
<div class="col const-width">
const
</div>
<div class="col ">
<div class="bigcontent">
some very very very very very very very very very very very very very very very very big content
</div>
</div>
<div class="col const-width">
const
</div>
</div>
</div>
我删除滚动div并使用!important 规则
将溢出-x应用于 .col 类自动