css - 如果块元素不适合使用css的一行,如何将块元素放在宽度为100%的另一行中?
问题描述
我有以下要求:当几个块元素不适合一行时,将它们放入另一行并使其为 100% 宽度,如果它们适合一行而不是自动宽度。所以,问题是下一个问题:是否可以仅使用 css 来实现?非常感谢!
.container {
width: 300px;
border: 1px solid grey;
padding: 10px;
text-align: center;
box-sizing: border-box;
}
.box {
display: inline-block;
width: 100px;
height: 50px;
background-color: gray;
box-sizing: border-box;
}
.container2 .box {
width: 100%;
}
if they fit in one row than take auto width
<div class="container">
<div class="box"></div>
<div class="box"></div>
</div>
<br/>
If they don’t fit in one row put<br/>
them into another and make them to be 100% width
<div class="container container2">
<div class="box"></div>
<div class="box"></div>
</div>
解决方案
这是你想要达到的目标吗?
用于flex-wrap
在第一行溢出时自动创建新行。
.container {
display: flex;
flex-wrap: wrap;
width: 250px;
border: 1px solid grey;
padding: 10px 0 0 10px;
text-align: center;
box-sizing: border-box;
}
.box {
flex: 1 0 100px;
height: 50px;
background-color: gray;
box-sizing: border-box;
margin: 0 10px 10px 0;
}
<div class="container">
<div class="box"></div>
</div>
<br/>
<div class="container">
<div class="box"></div>
<div class="box"></div>
</div>
<br/>
<div class="container">
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
</div>
对于动态内容
$(".container").each(function() {
if ($(this).height() > 100) {
$(".box", this).each(function() {
$(this).addClass("stretch");
});
}
});
.container {
display: flex;
flex-wrap: wrap;
width: 250px;
border: 1px solid grey;
padding: 10px 0 0 10px;
text-align: center;
box-sizing: border-box;
}
.box {
height: 50px;
background-color: gray;
box-sizing: border-box;
margin: 0 10px 10px 0;
padding: 0 10px;
}
.stretch {
flex: 1 0 100px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="container">
<div class="box">text</div>
</div>
<br/>
<div class="container">
<div class="box">text</div>
<div class="box">more text than text</div>
</div>
<br/>
<div class="container">
<div class="box">text</div>
<div class="box">more text than text</div>
<div class="box">Lots more text than more text than text</div>
</div>
推荐阅读
- jquery - 如何在数组中添加多个链接搜索条件
- c# - MoveWindow 和 SetWindowPos 都会导致不正确的窗口位置/大小
- javascript - 在 React 中使用 props 输入导出数组
- apache-kafka - 如何在 Kafka 中启动 mongodb 的工作连接器?
- angular - 我如何在 ngIf 条件 Angular 中使用函数
- vue.js - 为 VueJS 开发服务器启用 CORS
- reactjs - reactstrap中的边距和填充?
- c - 每次添加到目录时如何访问新文件?
- python-3.x - Python ciscoconfparse 查找关闭接口和整个接口块?
- python - 如何初始化延迟加载的Django模型字段?