在 JavaScript 中,使用元素的 offsetWidth 和 offsetHeight 属性可以分别获取元素的包含边框的宽度和高度;而 clientWidth 和 clientHeight 属性则可以分别获取元素的不包含边框的宽度和高度。
这些属性值包含的内容如下:
offsetWidth=左、右边框宽度+内容宽度+左、右内边距
offsetHeight=上、下边框宽度+内容高度+上、下内边距
clientWidth=内容宽度+左、右内边距
clientHeight=内容高度+上、下内边距
在实际应用中,经常需要让一个元素在视窗中居中显示,此时需要确定元素的定位 left 和 top 属性值,这两个值可使用下面的公式来确定:
元素的 left=(可视区域宽-元素的宽)/2
元素的 top=(可视区域高-元素的高)/2
其中,可视区域宽和高又可以使用以下格式的代码来获取:
可视区域宽度=document.documentElement.clientWidth
可视区域高度=document.documentElement.clientHeight
元素在一个视窗中居中显示的具体代码请参见例 1。
【例 1】设置元素在视窗中居中显示。
设置元素在视窗中居中显示#div1{width:100px;height:100px;background:red;border:10px solid #00BFFF;
position:absolute;}
var oDiv = document.getElementById('div1');
var clientW = document.documentElement.clientWidth;
var clientH = document.documentElement.clientHeight;
var divW = oDiv.offsetWidth;
var divH = oDiv.offsetHeight;
oDiv.style.left = (clientW-divW)/2+'px';
oDiv.style.top = (clientH-divH)/2+'px';
上述代码在 Chrome 浏览器中的运行结果如图 1 所示。
图 1:元素在视窗中居中显示