我正在尝试在另一个div中设置div。我的问题是如何将红色子div设置为垂直对齐到中间并且具有比父div更小的高度。看我的代码。
html
<div class="container">
<div class="sub-wrapper"> //Need this div to be vertical align to middle
text here //and smaller height
</div>
<div class="bottom-wrapper">
another text
</div>
</div>
CSS
.container {
display: table;
width: 100%;
height: 50px;
background-color: red;
}
.sub-wrapper {
display: table-cell; //I use table-cell to vertical align to middle
background-color: red;
height: 20px; //set 20px but doesn't take effect...
}
.bottom-wrapper {
display: table-cell;
width: 40%;
background-color: blue;
}
https://jsfiddle.net/zccdcmp5/1/
感谢您的帮助!
答案 0 :(得分:3)
垂直对齐
您需要添加vertical-align: middle
CSS属性才能将文本垂直放置在中间。只需将其添加到.sub-wrapper
声明:
.sub-wrapper {
display: table-cell;
background-color: red;
height: 20px;
vertical-align: middle; // Here it is :)
}
<强>高度强>
只要将div
渲染为表格单元格,就不能使唯一padding
的高度小于其父级(表格)的高度。细胞填满了桌子。
有几种方法可以做到这一点。您可以使用margin
,"ip" : {
"type" : "string",
"index" : "not_analyzed",
"norms" : {
"enabled" : false
},
"fields" : {
"ipV4" : { "type":"ip", "store":true}
}
}
或创建带边距的容器。但是,你为什么要这样做呢?
答案 1 :(得分:0)
垂直居中的css技巧(你的父母或孩子可能有任何高度):
position: relative
关于孩子的position: absolute
top: 50%
-webkit-transform: translateY(-50%)
,添加实际使用的其他供应商尝试此操作时,请务必删除display: table
(或表格单元格)。
这将使孩子居中对齐,并且由于绝对位置,其他兄弟姐妹不会在这个居中的孩子下方对齐。表格单元格将强制您最终占用整个空间,您可以添加另一个包装以具有自定义高度。如果不同的高度很重要,我的解决方案可能不那么冗长。
答案 2 :(得分:0)
只需执行此操作即可生成vertical-align:middle
并将文本设为中心..
<强> CSS 强>
.container {
display: table;
width: 100%;
height: 50px;
background-color: red;
text-align:center;
}
.sub-wrapper {
display: table-cell;
vertical-align:middle;
background-color: red;
height: 20px;
}
.bottom-wrapper {
display: table-cell;
width: 40%;
background-color: blue;
}
答案 3 :(得分:0)
使用display:inline-block
将为您提供所需的输出。
检查以下内容:
.container {
background-color: red;
display: block;
height: 50px;
width: 100%;
}
.sub-wrapper {
background-color: red;
border: 1px solid;
display: inline-block;
height: 20px;
vertical-align: middle;
width: calc(60% - 2px);
}
.bottom-wrapper {
background-color: blue;
display: inline-block;
height: 100%;
vertical-align: middle;
width: 40%;
}
<div class="container">
<div class="sub-wrapper">
text here
</div><div class="bottom-wrapper">
</div>
</div>
希望它有所帮助。