html - 不需要的中心对齐
问题描述
我需要列出几个div
具有display
参数的部分inline-block
。作为一个组,我需要他们在屏幕上居中,但我希望他们在需要“新行”时从该组的左侧开始。
这是一个非常简单的演示:https ://jsfiddle.net/fcdm56ra/
div.c1 {
background: #fff;
display: inline-block;
text-align: center;
}
div.c2 {
display: inline;
text-align: left;
align: left;
}
div.c3 {
border-color: #0f0;
border-style: solid;
border-width: 3px;
display: inline-block;
margin: 5px;
vertical-align: top;
}
<div class="c1">
<div class="c2">
<div class="c3">
111111111111111111<br>abc
</div>
<div class="c3">
22222222222222222
</div>
<div class="c3">
3333333333333333
</div>
<div class="c3">
444444444444444
</div>
<div class="c3">
55555555555555
</div>
<div class="c3">
6666666666666
</div>
<div class="c3">
777777777777<br>def
</div>
</div>
</div>
它看起来像这样:
...但我希望它如下所示:
更理想的结果是让它像这样显示:
...其中“22222222222222222”块的高度自动调整为其行高,以匹配同一“行”中其他元素的高度。
重要的部分是,作为一个整体,它必须在屏幕上居中,并且c3
类必须是inline-block
.
我的代码有什么问题?
解决方案
你可以在这里使用 flexbox 和几个定义的最大宽度来实现这个结果:
div.c1 {
background: #fff;
display: flex;
flex-wrap: wrap;
margin: 0 auto;
max-width: 38ch;
}
div.c3 {
border-color: #0f0;
border-style: solid;
border-width: 3px;
margin: 5px;
max-width: 18ch;
vertical-align: top;
}
示例:https ://jsfiddle.net/pL2hog73/10/
更新
由于您不想使用 Max-Widths,您可以尝试使用网格方法。它与您的首选输出不完全匹配,因为列更加僵硬。
div.c1 {
background: #fff;
display: grid;
margin: 0 auto;
width: 50%;
}
div.c3 {
border-color: #0f0;
border-style: solid;
border-width: 3px;
grid-column: 1;
margin: 5px;
vertical-align: top;
width: min-content;
}
div.c3:nth-child(even) {
grid-column: 2;
}
https://jsfiddle.net/f1jt845a/1/
或者,您也可以只.c3
保留 div ,然后在每两个之后width: min-content; display: inline
插入一个。<br/>
这将为您提供所需的左对齐,而无需处理网格/弹性框。
推荐阅读
- node.js - nodejs mongodb在发布新行时存储函数中的变量
- c# - SqlLite EntityFramework 表更新操作落后一步
- javascript - $("#id").prop("hidden", false); 之间的区别 和 $("#id").show();
- django - django Count on FK with Sum 和 filters
- django - 从api调用此函数时,如何在返回重定向函数以获取上下文数据时发送字典上下文?
- php - Symfony / Api Platform - 如何使用会话参数获取数据
- javascript - 将 mapState 的对象放入一个数组中(vue2/js/vuex)
- java - 如何在我的 C# 项目中包含 JAR 文件?
- android - 正在进行通话。你只能调整通话音量我的应用通知接收mi设备,如mi 9t,redmi 4如何禁用它
- c - 从C中的文本文件中读取完整单词的行