我正在使用这种技术http://codepen.io/chriscoyier/pen/gsodI。它几乎很好 - 但在第二个框中,您可以看到内容框伸出外部元素。
如何解决这个问题,如果内部元素小于外部元素,它会居中,如果它更高,它会像这张图片一样“推动”外部元素?
我正在使用这种技术http://codepen.io/chriscoyier/pen/gsodI。它几乎很好 - 但在第二个框中,您可以看到内容框伸出外部元素。
如何解决这个问题,如果内部元素小于外部元素,它会居中,如果它更高,它会像这张图片一样“推动”外部元素?
您需要提供三个主要属性才能垂直对齐
在您的第二个框中,更改此行:
<div class="block" style="height: 200px;">
对于这个:
<div class="block" style="min-height: 200px;">
这似乎是你所描述的。(演示中的第二个示例)
要修复此添加display:table;
和width: 100%
块(父)元素
<div class="block">
<div class="centered">
</div>
</div>
/* This parent can be any width and height */
.block {
text-align: center;
background: orange;
display: table; /* added this */
width: 100%; /* added this */
}
/* The ghost, nudged to maintain perfect centering */
.block:before {
content: '';
display: inline-block;
height: 100%;
vertical-align: middle;
margin-right: -0.25em; /* Adjusts for spacing */
}
/* The element to be centered, can
also be of any width and height */
.centered {
display: inline-block;
vertical-align: middle;
width: 300px;
background: pink;
}
在你的 CSS
vertical-align:middle