javascript - 使用 Javascript 垂直居中 div(可变高度)

标签 javascript dom vertical-alignment

我正在尝试使用 Javascript 将 div 垂直居中。因为文本会发生变化,所以我不能使用固定高度。

我想在没有 Jquery 的情况下做到这一点。

#box2 {

    width: 100%;
    height: 100%;
    position:relative;
    background-color: orange;

}
            #informationBox {

            padding: 0.5em;
            background-color: #fff;
            border-radius: 12pt;
            border: solid black 3pt;
            max-width: 683px;
            margin: 0 auto;
            text-align: center;
        }

Javascript:

var container = document.getElementById("#box2");
var inner = document.getElementById("#informationBox");
var inHeight = inner.offsetHeight;

container.style.height=(window.innerHeight);
container.style.width=window.innerWidth;

var conHeight=container.offsetHeight;

inner.style.marginTop=((conHeight-inHeight)/2);

任何帮助都会很棒 :)

http://jsfiddle.net/tmyie/EttZQ/

最佳答案

你已经差不多了,你只需要改变一些东西。首先,getElementById 只接受一个 id 字符串,而不是一个选择器。其次,您需要在样式声明中添加“px”。

var container = document.getElementById("box2");
var inner = document.getElementById("informationBox");
var inHeight = inner.offsetHeight;
container.style.height = window.innerHeight;
container.style.width = window.innerWidth;
var conHeight = container.offsetHeight;

inner.style.marginTop = ((conHeight-inHeight)/2)+'px';

这是一个更新的 fiddle :http://jsfiddle.net/EttZQ/1/

关于javascript - 使用 Javascript 垂直居中 div(可变高度),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17179077/

相关文章:

javascript - 选项卡内的轮播

javascript - 一步将整数转换为字符串并进行 trim

java - 如何查找和替换 XML 中的属性值

html - 表格内的文本区域和垂直对齐方式

html - 垂直对齐文本和图像

Java Group布局,垂直布局问题

javascript - 使用 Backbone 事件来切换 Collection View 属性或 jQuery.siblings()?

javascript - 使用原型(prototype)时,我需要将所有内容包装在 DOM 加载上吗?

JavaScript 单击 iframe 内的 div

javascript - 带有来自 .kml 文件的地标的 Google map 多边形(使用 geoxml3 和 kmllayer)