有两个div。我希望内部div垂直居中,不给边距,因为我希望内部div的高度是自动的,因为它的内容可以改变,高度可以增加。
以下是两个div:
外部div:
.frontleft{
width: 602px;
height: 450px;
float: left;
margin: 35px auto;
z-index: 10;
}
内部div:
.c1{
height: auto;
width: inherit;
}
感谢。
答案 0 :(得分:1)
为什么不使用表格呢?使用td标记中的vertical-align。
<html>
<body>
<table class="frontleft">
<tr><td>I am a sentence</td></tr>
</table>
</body>
</html>
答案 1 :(得分:1)
您应该定位内部元素absolute
并使用transform
属性进行垂直居中。
.frontleft {
width: 602px;
height: 450px;
float: left;
margin: 35px auto;
z-index: 10;
position: relative;
background: orange;
}
.c1 {
height: auto;
width: inherit;
position: absolute;
top: 50%;
transform: translateY(-50%);
background: blue;
}
<div class="frontleft">
<div class="c1">test</div>
</div>
答案 2 :(得分:1)
您可以使用Flexbox。父项display: flex
和子项目align-self: center
上的.frontleft {
width: 602px;
height: 450px;
float: left;
margin: 35px auto;
z-index: 10;
background: #2C2955;
display: flex;
}
.c1 {
height: auto;
width: inherit;
background: #4C5FB1;
align-self: center;
}
将垂直居中。
<div class="frontleft">
<div class="c1">Center</div>
</div>
typedef struct {
Foo *next;
int i;
} Foo;