Html 如何使用垂直对齐:中间对齐

Html 如何使用垂直对齐:中间对齐,html,css,Html,Css,现场: #主{ 宽度:100px; 高度:100px; 背景色:红色; } #潜艇{ 宽度:100%; 身高:100%; 背景颜色:蓝色; 垂直对齐:中间对齐; } 正文 为什么在本例中垂直对齐不起作用?我怎样才能做到?我不想使用边距,填充和设置高度在像素。这可能吗 如果您只想在固定高度的框中垂直居中文本,我将使用行高:100px来执行此操作您必须使用 display:table-row; display:table-cell; or display:table; 与垂直对齐样式一起,不

现场:

#主{
宽度:100px;
高度:100px;
背景色:红色;
}
#潜艇{
宽度:100%;
身高:100%;
背景颜色:蓝色;
垂直对齐:中间对齐;
}
正文

为什么在本例中垂直对齐不起作用?我怎样才能做到?我不想使用边距,填充和设置高度在像素。这可能吗

如果您只想在固定高度的框中垂直居中文本,我将使用
行高:100px
来执行此操作

您必须使用

display:table-row; 
display:table-cell; or 
display:table;

与垂直对齐样式一起,不确定它必须是哪个确切的显示值,但它必须是
表格
中的一个。

您需要在主容器上使用
显示:表格
,在子容器上使用
显示:表格单元格
。如图所示:

您必须给元素#sub一个线条高度,否则浏览器不知道垂直对齐它的高度。

这应该可以:

#main {
    width: 100px;
    height: 100px;
    background-color: red;
    display: table;
}
#sub {
    display: table-cell;
    height: 100%;
    width: 100%;
    background-color: blue;
    vertical-align: middle;
}

只需给div a
行高度

 #main {
    width: 100px;
    height: 100px;
    background-color: red;
}
#sub {
    width: 100%;
    height: 100%;
    background-color: blue;
    line-height:100px;
}


此解决方案不使用
display:table
display:table cell
,因为
display:table cell
display:table cell
对浏览器不友好,一些较旧的浏览器不支持CSS属性的可能重复
vertical align
仅适用于内联块元素,而不适用于块元素(例如div)或内联元素。这是一个众所周知的副本…如果您不确定如何正确回答问题,请先进行研究,然后再回答。
 #main {
    width: 100px;
    height: 100px;
    background-color: red;
}
#sub {
    width: 100%;
    height: 100%;
    background-color: blue;
    line-height:100px;
}