获取元素尺寸(JavaScript 和 jQuery)

    在写代码的时候要经常用的元素宽、高, 可以通过getComputedStyle(dom)["width"], 但是有点麻烦,dom提供了获取元素宽高值的快捷方式。

    getComputedStyle 

        返回值类型: 字符串string

        返回值:        内容宽 content

JavaScript快捷获取元素尺寸

    1. clientWidth 获取元素的(content + padding)宽 

    element.clientWidth

        返回值类型: 数值number

        返回值:        内容宽 content + padding

    2. clientHeight 获取元素的(content + padding)

    element.clientHeight

        返回值类型: 数值number

        返回值:        内容高 content +padding

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style type="text/css">
		* {
			margin: 0;
			padding: 0;
		}
		#box {
			width: 100px;
			height: 100px;
			padding: 10px;
			border: 10px solid blue;
			background-color: red;
			margin: 0 auto;
		}
	</style>
</head>
<body>
	<div id="box"></div>
	<script type="text/javascript">
		// 在写代码的时候要经常用的元素宽、高, 可以通过getComputedStyle, 但是有点麻烦,
		// dom提供了获取元素宽高值得快捷方式
		// 获取元素
		var box = document.getElementById("box");
		// 元素的宽度    
		console.log("clientWidth是:" + box.clientWidth) 
		console.log("clientHeight是:" + box.clientHeight) 
		console.log(getComputedStyle(box)["width"])
		// 结论: clientWidth 包含的是 content + padding 
		// 输出的类型是 number
		// getComputedStyle(box)["width"] 内容宽 content
		// 输出的类型是 string
	</script>
</body>
</html>

    3. offsetWidth 获取元素的(content + padding + border)宽 

    element.offsetWidth 

        返回值类型: 数值number

        返回值:        内容宽 content + padding + border

    4. offsetHeight 获取元素的(content + padding + border)高

    element.offsetHeight 

        返回值类型: 数值number

        返回值:        内容高 content + padding + border

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style type="text/css">
		* {
			margin: 0;
			padding: 0;
		}
		#box {
			width: 100px;
			height: 100px;
			padding: 10px;
			border: 10px solid blue;
			margin: 10px;
			background-color: red;
			margin: 0 auto;
		}
	</style>
</head>
<body>
	<div id="box"></div>
	<script type="text/javascript">
		// 在写代码的时候要经常用的元素宽、高, 可以通过getComputedStyle, 但是有点麻烦,
		// dom提供了获取元素宽高值得快捷方式
		// 获取元素
		var box = document.getElementById("box");
		// 元素的宽度    
		console.log("offsetWidth是:" + box.offsetWidth) 
		console.log("offsetHeight是:" + box.offsetHeight) 
		// 结论:offsetWidth 包含的是  content + padding + border
		// 输出的类型是 number
	</script>
</body>
</html>

总结:

clientWidth获取元素content + padding 的宽
clientHeight获取元素content + padding 的高
offsetWidth获取元素content + padding + border 的宽
offsetHeight获取元素content + padding + border 的高

5. clientLeft 获取元素左边框的值

    element.clientLeft 

        返回值类型: 数值number

        返回值:        border-left的值

6. clientTop 获取元素上边框的值

     element.clientTop

        返回值类型: 数值number

        返回值:        border-top的值

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style type="text/css">
		* {
			margin: 0;
			padding: 0;
		}
		#box {
			width: 100px;
			height: 100px;
			padding: 20px;
			border: 30px solid blue;
			margin: 10px;
			background-color: red;
			margin: 0 auto;
		}
	</style>
</head>
<body>
	<div id="box"></div>
	<script type="text/javascript">
		// 在写代码的时候要经常用的元素宽、高, 可以通过getComputedStyle, 但是有点麻烦,
		// dom提供了获取元素宽高值得快捷方式
		// 获取元素
		var box = document.getElementById("box");
		// 元素的宽度    
		console.log("clientLeft值是:" + box.clientLeft) 
		console.log("clientTop值是:" + box.clientTop) 
		// 结论: clientLeft 指得是元素的左边框距离。
		// 结论: clientTop 指得是元素的上边框距离。
	</script>
</body>
</html>

总结:

clientLeft获取元素的左边框的值
clientTop获取元素的上边框的值

jQuery快捷获取元素尺寸

jQuery方法返回值含义返回值类型
element.width()获取元素 content 部分 的宽number
element.height()获取元素 content 部分 的高number
element.innerWidth()获取元素 content + padding 部分 的宽number
element.innerHeight()获取元素 content + padding 部分 的宽number
element.outerWidth()获取元素 content+ padding + border 部分 的宽number
element.outerHeight()获取元素 content+ padding + border 部分 的宽number
element.outerWidth(true)获取元素 content+ padding + border + margin 部分 的宽number
element.outerHeight(true)获取元素 content+ padding + border + margin 部分 的宽number
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style type="text/css">
		* {
			margin: 0;
			padding: 0;
		}
		#box {
			float: left;
			width: 100px;
			height: 100px;
			padding: 20px;
			border: 30px solid blue;
			margin: 10px;
			background-color: red;
		}
	</style>
</head>
<body>
	<div id="box"></div>
	<script type="text/javascript" src="js/jquery-1.12.3.min.js"></script>
	<script type="text/javascript">
	// // content 部分
	// console.log($("#box").width())
	// console.log($("#box").height())

	// content + padding 
	// console.log($("#box").innerWidth())
	// console.log($("#box").innerHeight())

	// content + padding + border
	// console.log($("#box").outerWidth())
	// console.log($("#box").outerHeight())

	// content + padding + border + margin
	console.log($("#box").outerWidth(true))
	console.log($("#box").outerWidth(true))

	</script>
</body>
</html>



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值