CSS中的垂直对齐?

Posted

技术标签:

【中文标题】CSS中的垂直对齐?【英文标题】:Vertical aligning in CSS? 【发布时间】:2010-10-23 19:59:53 【问题描述】:

所以我知道vertical-align: middle; 的所有问题以及人们在CSS 中用于垂直对齐元素的不同方法。但我还没有找到一个适合我需要它的工作。

基本上我的页面上只有一个<div>,我希望将其定位在页面的中心,水平和垂直。显然水平部分很容易,但我被垂直部分挂断了。我的问题是<div> 的高度未知;内容发生了变化,所以我无法为其指定高度。

有人有什么建议吗?如有必要,我愿意使用 javascript。谢谢!

【问题讨论】:

你不知道应该居中的元素的高度 - 但你知道周围区域的高度吗? 【参考方案1】:

正如你所说,你不介意使用 JS,这里是......(我通常从不回退到 JS 解决方案,但如果你对它很满意,那么我也是)

如果你的 CSS 是

#element 
    position: absolute;
    top: 50%;

那么你可以使用我的朋友 jQuery

$(document).ready(function() 
    var height = $('#element').height();
    $('#element').css(marginTop: '-' + (height / 2) + 'px')

);

注意,这是未经测试的,但应该是一个开始。希望 height / 2 能按预期工作,如果没有,请尝试使用parseInt()

【讨论】:

【参考方案2】:

长话短说,你 need two divs 获得纯 CSS 垂直居中。

不过,使用 Javascript,您可以do it with a single div。

【讨论】:

以上是关于CSS中的垂直对齐?的主要内容,如果未能解决你的问题,请参考以下文章

css如何使div里面的文字垂直对齐

CSS 玄学:为啥页面垂直对齐如此困难?

CSS 玄学:为啥页面垂直对齐如此困难?

使用 CSS 网格时如何垂直对齐 CSS 中的对象? [复制]

HTML CSS中如何实现DIV中的图片水平垂直居中对齐

有没有办法将文本与 CSS 内容属性(chrome)中的图像垂直对齐?