答案 0 :(得分:1)
这有效:
以下是链接:http://jsbin.com/uvodop/2/edit
看看它是如何在盒子内垂直对齐的。高度也不固定。
希望它能回答你的问题。
<html>
<head>
<title>HTML Div vertical align using CSS</title>
<style type="text/css">
.outerDiv {
border: solid 1px #000000;
width: 300px;
padding: 5px 2px 5px 2px;
}
.innerDiv {
width: 95%;
margin: 0px auto;
padding: 40px 0px 40px 5px;
border: solid 1px #000000;
}
</style>
</head>
<body>
<div class="outerDiv">
<div class="innerDiv">
This text is placed inside the next HTML div tag.<br />
CSS style is used to vertical align the nested div and text.
</div>
</div>
</body>
</html>
答案 1 :(得分:0)
虽然这是一个老话题,但我认为这个答案可能对某人有所帮助。如果IE的版本至少是IE的灵活性> 8,然后您可以使用display:table-cell
并使用默认的vertical-align
功能。
在下面的代码中,div.hover
(即将在中间垂直对齐的div)未分配任何高度,但是父项被指定为100%高度以填充屏幕。
检查出来
.outer {
position: fixed;
top: 0px;
left: 0px;
width: 100%;
height: 100%;
background-color: #aaa;
display: table;
}
.inner {
display: table-row;
border: 1px solid #0f0;
height: 100%;
}
.center {
display: table-cell;
border: 1px solid #00f;
vertical-align: middle;
height: 100%;
}
.hover {
width:100px;
border: 1px solid #f00;
margin-left: auto;
margin-right: auto;
}
<div class="outer">
<div class="inner">
<div class="center">
<div class="hover">
I am a random text to give the div some height
</div>
</div>
</div>
</div>