我有一个<div>
固定高度的元素,我想在该元素中垂直居中一些文本.
我一直在尝试按照http://phrogz.net/css/vertical-align/index.html上的说明进行操作.但是,它似乎对我不起作用.
我已经发布了我正在尝试的http://jsfiddle.net/scwebgroup/74Rnq/.如果我将HeaderBrand的margin-top更改为约-22px,那么它似乎是正确的.
任何人都可以看到为什么文章中描述的技术不能按预期工作?
注意:此处的最佳答案仅适用于文本未换行到第二行的情况.
Mat*_*ijs 46
这个:
<!DOCTYPE html>
<style>
.outer { outline: 1px solid #eee; }
.outer > p { display: table-cell; height: 200px; vertical-align: middle; }
</style>
<div class="outer">
<p>This text will be vertically aligned</p>
</div>
<div class="outer">
<p>This longer text will be vertically aligned. Assumenda quinoa cupidatat messenger bag tofu. Commodo sustainable raw denim, lo-fi keytar brunch high life nisi labore 3 wolf moon readymade eiusmod viral. Exercitation velit ex, brooklyn farm-to-table in hoodie id aliquip. Keytar skateboard synth blog minim sed. Nisi do wes anderson seitan, banksy sartorial +1 cliche. Iphone scenester tumblr consequat keffiyeh you probably haven't heard of them, sartorial qui hoodie. Leggings labore cillum freegan put a bird on it tempor duis.</p>
</div>
Run Code Online (Sandbox Code Playgroud)
适用于现代浏览器,无论文本是否只跨越一行或多行.
还更新了http://jsfiddle.net/74Rnq/135/上的小提琴.当事物本身的宽度仅为150px时,不确定你在左边的625px边缘做了什么...通过删除内联样式整理了一些东西并使用一点填充.
Jam*_*son 14
您可以尝试将line-height设置为div的高度,如下所示:
<div style="height:200px;border:1px solid #000;">
<span style="line-height:200px;">Hello world!</span>
</div>
Run Code Online (Sandbox Code Playgroud)
这是另一种似乎有用的技术:
#vertical{
position:absolute;
top:50%;
left:0;
width:100%;
}
<div style="position:relative;height:200px;">
<div id="vertical">
Hello world!
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我知道此方法添加了一些HTML,但是它似乎可以在所有主要浏览器(甚至是IE7 +)中使用。
基本HTML结构
<div id="hold">
<div>Content</div>
<div class="aligner"> </div>
</div>?
Run Code Online (Sandbox Code Playgroud)
需要CSS
#hold{
height:400px;
}
div{
display: -moz-inline-stack;
display: inline-block;
zoom: 1;
*display: inline;
vertical-align:middle;
}
.aligner{
width:0px;
height:100%;
overflow:hidden;
}?
Run Code Online (Sandbox Code Playgroud)