元素的客户区大小(client dimension)指的是元素内容及其内边距所占据的空间大小。有关客户区大小的属性有两个:clientWidth和clientHeight。其中,clientWidth属性是元素内容区宽度加上左右内边距宽度,clientHeight属性是元素内容区高度加上上下内边距高度。从字面上看,客户区大小就是元素内部的空间大小,因此滚动条占用的空间不计算在内。最常用到这些属性的情况,就是获取浏览器视口大小的时候。要确定浏览器视口大小,可以使用document.documentElement或document.body(在IE7之前的版本中)的clientWidth和clientHeight。
function getViewport(){ if(document.compatMode=="BackCompat"){ return { width:document.body.clientWidth, height:document.body.clientHeight}; }else{ return { width:document.documentElement.clientWidth, height:document.documentElement.clientHeight}; } }
这个函数首先检查document.compatMode属性,以确定浏览器是否运行在混杂模式。Safari 3.1之前的版本不支持这个属性,因此就会自动执行else语句。Chrome、Opera和Firefox大多数情况下都运行在标准模式下,因此它们也会前进到else语句。这个函数会返回一个对象,包含两个属性:width和height,表示浏览器视口(<html>或<body>元素)的大小。与偏移量相似,客户区大小也是只读的,也是每次访问都要重新计算的。