js 中与元素有关的高度

1, 平常都经常用 document.documentElement.clientWidth 或 document.documentElement.clientHeight 来获取页面的宽度和高度, 其实任何一个元素都有clientWidth 和clientHeight 属性,它的值等于,元素的宽度或高度+ padding的值,如果有滚动条,还要减去滚动条的宽度和高度。 比如一个div

  1, 如果设置一个div 的宽度和高度,里面只有很少内容没有出现滚动条,那么这个div的clientWidth 和clientHeight 就是我们设置的width 和height。

<style>
  div {
	width: 300px;
	height: 100px;
	border: 1px solid blue;
	font: 30px arial;
  }
</style>
<div>
    clientHeight/ clientWidth
</div>
<script>
  var div = document.getElementsByTagName("div")[0];
  console.log(div.clientHeight);  // 100   同style样式中设置的一致
  console.log(div.clientWidth);  //  300   同style样式中设置的一致
</script>

  2, 如果同时给div元素设置了padding值, 那么div的clientWidth 和clientHeight就时 width + padding  和height + padding。

<style>
	div {
		width: 300px;
		height: 100px;
		padding: 20px;  /*增加了padding 20px*/
		border: 1px solid blue;
		font: 30px arial;
	}
</style>

console.log(div.clientHeight);  // 140  width + padding *2
console.log(div.clientWidth);  //  340  height + padding *2

  3, 如果给div 设置overflow: auto,同时里面的内容特别多,出现滚动条, 这是clientWidth 和clientHeight就时 width + padding -滚动条的宽度  和height + padding-滚动条的高度。

<style>
	div {
		width: 300px;
		height: 100px;
		padding: 20px; /*增加了padding 20px*/
		border: 1px solid blue;
		font: 30px arial;
		overflow: auto;
	}
</style>

<div>
	clientHeight/ clientWidth/clientHeight/ clientWidth
	clientHeight/ clientWidth/clientHeight/ clientWidth
	clientHeight/ clientWidth/clientHeight/ clientWidth
	clientHeight/ clientWidth
</div>
<script>
	var div = document.getElementsByTagName("div")[0];
	console.log(div.clientHeight);  // 123   width + padding *2 -滚动条的高度
	console.log(div.clientWidth);  // 323    height + padding *2 -滚动条的宽度    // 滚动条的默认宽度和高度是17px; </script>

  4, clientLeft/ clientTop: 他们指的是div 元素border 的宽度。 clientLeft 指的是border-left-width,clientTop 指的是 border-top-width;

div {
	width: 300px;
	height: 100px;
        border-style: solid;
        border-width: 30px 20px 10px 5px;
}    

console.log(div.clientTop);  //  30
console.log(div.clientLeft);  //  5

  

时间: 2024-12-26 10:46:57

js 中与元素有关的高度的相关文章

在Js中得到元素的子元素集合注意事项

http://www.cnblogs.com/phonefans/archive/2008/09/04/1283739.html 在Js中得到元素的子元素集合注意事项 费话少说,直接看例子: 1 <ul>2  <li>this's one</li>3  <li>this's two</li>4  <li>this's three</li>5  <li>this's four</li>6 <ul

60秒验证码倒计时js代码 js样式代码 方块上下左右随机移动(定时器) js中获取元素的方法 js中表单提交

60秒验证码倒计时js代码 <script type="text/javascript"> var countdown=60; function settime(val) { if (countdown == 0) { //removeAttribute() 方法删除指定的属性. disabled属性规定应该禁用 input 元素. val.removeAttribute("disabled"); val.value="免费获取验证码"

js中选定元素slice()

选定元素slice() slice() 方法可从已有的数组中返回选定的元素. 语法 arrayObject.slice(start,end) 参数说明: 1.返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素. 2. 该方法并不会修改数组,而是返回一个子数组. 注意: 1. 可使用负值从数组的尾部选取元素. 2.如果 end 未被规定,那么 slice() 方法会选取从 start 到数组结尾的所有元素. 3. String.slice() 与

js获取页面元素宽度、高度的方法总结

1.offsetWidth.width().clientWidth.scrollWidth offsetWidth是对象本身的宽度,包括边线滚动条等 clientWidth是对象能够被看到的宽度 clientWidth是对象内容的实际宽度 ps:$("#id").offsetWidth会返回undefined.原因:jquery选择器选择出来的元素都是数组对象,这些变量都是对一个明确的对象而言,正确写法应该是$("#id")[0].offsetWidth或者使用js

js中设置元素class的三种方法小结

一.obj.setAtttribute('class','abc') <!DOCTYPE HTML> <HTML> <HEAD> <meta charset="utf-8" /> <title>setAttribute('class', 'abc')</title> <style type="text/css"> .abc { background: red; } </styl

JS中获取元素的第二种方法

1.静态方法 var oUl = document.getElementById(''); 2.动态方法 document.getElementsByTagName(''); 1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 5 <title>无标

js中获取元素的样式兼容性的写法

1:设计元素的样式:el.style.color="red"||el.style["color"]="red"  获取元素的样式:el.style.color||el.style["color"](只能获取直接样式的 值)  获取内部样式或外部样式的值: function getStyle(ele,style){        return ele.currentStyle?obj.currentStyle [style]:w

js中方法单词以及意思

浏览器对象是什么,它是JS编程中的顶级作用域,JS中的一切方法和属性,都是这个对象的后代 (window). 文档或文档对象,通俗的讲就是:凡是我们能看的见编码,就属于文档(document). 通过id来获取一个HTML元素,以便我们用JS来控制操作(document.getElemetnById). 在整个网页内通过标签名获得一组HTML元素的集合对象(document.getElementsByTagName). JS中创建元素的方法 (createElement). JS中添加子元素的方

JS中document.createElement()用法及注意事项

今天处理了一个日期选择器的ie和ff的兼容问题,本来这种情况就很难找错误,找了好久才把错误定位到js中创建元素的方法document.createElement(),这个方法在ie下支持这样创建元素 var inputObj    = document.createElement     ("<input type='text' size='8' style='border:0px;border-bottom:2px solid #c0c0c0;'" readonly >&