`
liqiangzju
  • 浏览: 19678 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

对网页元素Client,Offset和Scroll三种属性的理解

阅读更多

这两天在写一个js脚本文件来实现对网页内容的位置和大小控制,中间碰到了诸多问题,随着问题刨根问底抓取到了三个非常难以区分的属性:Client,Offset,Scroll,参考了许多资料,将我的理解描述如下。

 

问题提出:直接用width属性不能够访问到元素的宽度。

<style type="text/css">
/* <![CDATA[ */
	#a
{
	width:100px;
	height:30px;
	border:solid blue 1px;
}
/* ]]> */
</style>
<script type="text/javascript">
// <![CDATA[
	function getWidth()
{
	var bar=document.getElementById("a");
	alert(bar.style.width);
}
// ]]>
</script>
<div id="a">
</div>
<input type="button" name="name" value="GetWidth" onclick="getWidth()" />

 这样获取不到a块的宽度,搜索之,得到的结论是:当元素宽度是css单独制定的时候,通过这种手段将不能够成功取得其宽度值,但是可以设置。看到这两篇博客,他们的解决办法是采用offsetWidth属性来代替style.width。

http://www.woaicss.com/article/js/jss.htm

http://www.45it.com/javascript/201202/28426.htm

当资料查到这里就很疑惑了,为什么是offsetWidth,这个真的是元素的宽度吗?于是进一步往下查,发现并不是这样的,offsetWidth并不一定就是你想要的宽度值。除了offset,我将三个功能类似的属性offset,client,scroll一并做了了解,对比如下,都包含有*Height,*Width,*Top.*Left四个属性。

 

Height和Width表示元素块的高度和宽度。

client:包含padding,不包含border,margin和scrollbar部分

offset:包含padding和border,但是不包含margin和scrollbar部分

scroll:包含元素的所有部分。

 

Top和Left是用于表示元素的位置。

clientLeft:通常指元素的左边框的宽度

offsetLeft:与最近的父元素的距离(横向)

scroll:卷起来的距离,如果没有出现scrollbar,那么这个值始终为0。

 

所以说,如果不想要计算元素的边框所占用的宽度,上面的这个例子应该使用clientWidth,而不是offsetWidth。

 

 

分享到:
评论

相关推荐

    网页元素位置(scroll、client、offsetWidth等)获取、设置详解

    网页元素位置(scroll、client、offsetWidth等)获取、设置详解

    js中offset,client , scroll 三大元素知识点总结

    本篇将详细介绍与元素尺寸位置和滚动相关的三个重要的属性家族:offset系列、client系列和scroll系列。这些属性为我们提供了元素位置信息,窗口或元素内部的滚动距离等重要数据,对于实现页面布局和交互功能至关重要...

    05-offset,scroll,client.html

    05-offset,scroll,client.html

    javascript中offset、client、scroll的属性总结

    JavaScript中的offset、client和scroll属性是用于获取和操作HTML元素...在JavaScript中处理元素尺寸和位置时,了解并正确使用offset、client和scroll属性至关重要,它们可以帮助我们创建更加动态和响应式的网页界面。

    三剑客:offset、client和scroll还傻傻分不清?

    在学习前端的过程中,我们经常会碰到offset, client与scroll,所以我就把它们称作为‘三剑客’。 01 offset – 偏移量 定义:元素在屏幕上占用的所有的可见的空间。 元素可见的大小由其高度、宽度决定,包括所有内...

    javascript的offset、client、scroll使用方法详解

    JavaScript中的`offset`、`client`和`scroll`是一组用于获取和操作页面元素位置及大小的重要属性。这些属性在Web开发中非常常见,尤其是在处理动态布局和交互时。下面将详细讲解这些属性的含义、用途及其在不同...

    第十三课 DOM元素尺寸1

    总结起来,了解并熟练掌握DOM元素的`client`、`offset`和`scroll`系列属性,可以帮助前端开发者更精确地控制网页元素的布局和交互,从而提升用户体验。在实际项目中,这些知识的应用广泛且至关重要,无论是简单的...

    JS前端知识点offset,scroll,client,冒泡,事件对象的应用整理总结

    主要介绍了JS前端知识点offset,scroll,client,冒泡,事件对象的应用,结合实例形式总结分析了offset,scroll,client,冒泡,事件对象相关功能、原理及操作注意事项,需要的朋友可以参考下

    前端总结.docx

    理解BFC可以帮助解决浮动元素和溢出问题,以及实现自适应布局。 **弹性盒子(Flexbox)** Flexbox是一种用于布局的现代CSS模块,使得创建响应式、灵活的布局变得简单。它可以轻松地调整元素大小和位置,特别是在...

    javascript必修课_offset,client,scroll家族

    本课将带你学习前端开发中最重要的技术JavaScript,它是网页与用户进行交互的基石。我们将从最简单的点击事件、表单提交、元素改变颜色开始,一步步由浅及深学习JS的各种酷炫知识。最后我们还会学习Jquery框架,以...

    BOM browser objcet model.docx

    在元素的尺寸和位置方面,BOM有三个系列的属性: - `offset`系列:`offsetLeft`和`offsetTop`表示元素相对于最近的定位父元素的偏移,如果没有定位父元素,则相对于`body`;`offsetWidth`和`offsetHeight`获取元素...

    JavaScript中的一些定位属性[图解]

    需要注意的是,上述提到的client系列和offset系列属性在获取元素大小和位置时非常有用,但它们在具体数值上可能会有所差异,取决于元素本身及其父元素的CSS样式设置。 上述内容通过图解的方式可以帮助页面定位控制...

    2021javascript面试题.docx

    1. 元素的位置和大小:offset、client 与 scroll 系列都是获取元素位置和大小的方法,offset 获取元素相对于文档的偏移量,client 获取元素相对于视窗的偏移量,scroll 获取元素的滚动距离。 2. 获取元素对象的注意...

    2021前端面试题精编.pdf

    获取元素宽度和高度的方式有很多,包括通过offset系列属性、client系列属性、scroll系列属性以及CSS中的`width`和`height`属性。 清除浮动的常用方法包括使用带有`clear`属性的伪元素、使用`overflow: auto;`或`...

    js获取控件位置以及不同浏览器中的差别介绍

    控件位置信息的获取,主要依赖于offset系列属性,client系列属性,以及scroll系列属性。这些属性在不同浏览器中存在一些差异,尤其在旧版浏览器中可能表现得尤为明显。 首先,offset系列属性提供了元素相对于其父...

    前端JavaScript基础学习笔记案例

    1.知识点包括:基础语法,字符串操作,object对象,DOM对象,BOM对象,offset,client,scroll对象,事件,事件流处理,函数(call,apply,bind函数),作用域,闭包(十种闭包的应用场景),面向对象,正则表达式,...

    小程序click-scroll组件设计

    在实现click-scroll组件之前,我们需要理解几个关于元素尺寸的关键概念: 1. 偏移量(offset dimension): - offsetHeight:元素的总高度,包括内容、内边距、滚动条和边框。 - offsetWidth:元素的总宽度,同样...

Global site tag (gtag.js) - Google Analytics