html - 为什么这些框不能垂直对齐?
问题描述
我想不通,它应该把盒子放在它的容器中间,但我不能让它们移动。
这个想法是将包装器内部居中并将它们水平放置在中间,而无需使用边距或填充物并使用垂直对齐。
#wrapper {
width: 1000px;
height: 1000px;
}
#container {
width: 900px;
height: 900px;
text-align: center;
display: inline-block;
background-color: lightblue;
}
.box {
width: 200px;
height: 200px;
margin: 0 auto;
display: inline-block;
vertical-align: middle;
background-color: lightgreen;
border: 1px solid grey;
margin: 10px;
}
<div id="wrapper">
<div id="container">
<div class="box">BOXES</div>
<div class="box">BOXES</div>
<div class="box">BOXES</div>
</div>
</div>
解决方案
我认为您正在寻找 flexbox。
我已经调整了你的 jsfiddle 以适应 https://jsfiddle.net/ke4w58ra/
以下代码是我对您的#content 元素所做的更改。
display: flex;
justify-content: center;
align-items: center;
gap: 5px;
本质上,将元素设置为水平(对齐项目)和垂直(对齐内容)显示在中心。有 5px 的间隙将盒子隔开。
有关更多信息,请查看此处:https ://css-tricks.com/snippets/css/a-guide-to-flexbox/
下面是 JSFiddle 的集成形式
#container{
width: 100vw;
height: 100vh;
text-align: center;
display: inline-block;
background-color: lightblue;
display: flex;
justify-content: center;
align-items: center;
gap: 5px;
}
.box{
width: 200px;
height: 200px;
margin: 0 auto;
background-color: lightgreen;
border: 1px solid grey;
margin: 10px;
display: flex;
align-items: center;
justify-content: center;
}
body {
margin: 0px;
}
<body>
<div id="container">
<div class="box">BOXES</div>
<div class="box">BOXES</div>
<div class="box">BOXES</div>
</div>
</body>
推荐阅读
- accessibility - 屏幕文本和可访问性 508 合规性
- docker - kubernetes 和 dockerfiles 放在哪里
- django - 模板渲染期间 Django 管理站点出错-'__str__ 返回非字符串(类型字节)'
- javascript - JQ/JS 在弹出窗口中按 ID 访问 DOM ID 元素时遇到问题
- typescript - Aurelia:视图和视图模型的继承
- apache - Apache Web 服务器和 JBoss 都需要证书吗?
- mysql - F# Type Provider 错误,Reader 关闭时尝试读取
- linux - 如何调试“程序接收信号SIGSEGV:分段错误”的错误
- c# - Android 快速入门教程 - '此项目包含未编译的资源...'
- java - 当 Android Studio 遇到代理内部的断点时,应用程序崩溃