We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DOM接口涉及样式就很多样
client这个名字看起来很莫名,但是注意搜索的话还是可以找到一些端倪。
client系列来自IE的DTHML模型, IE的DHTML出现在IE4.0, IE4.0发布于1997年,也就是说client这个名字很可能跟windows 图形编程有关。经查,win32的paint接口,把整个窗口中除了边框,各种菜单、工具栏的部分就叫 client area,实际上的意思就是呈现主要内容的部分,这个是出处。
client area
这样也就很明朗了,从window推广到每个DOM节点,除去边框和滚动条部分就叫client area了。(不过有意思的是,window反而没有client系列接口,取而代之是IE4.0时的 document.body.clientxx和IE6之后的document.documentElement.clientxx。
document.body.clientxx
document.documentElement.clientxx
border-top
border-left
我们可以给出一个结论,client系列表达的是元素自身的内部布局。具体讲,就是对应于CSS的padding、border、width/height系列。
值得注意的是,这个系列的接口属于HTMLElement部分,其他属于Element,也就是说SVG等是不包括这些接口的
HTMLElement
Element
从字面意思上看,就是偏移,既然是样式接口,那么一定有对应的CSS属性。CSS中的偏移,也就是top、left、bottom、right,并且只有当position属性不为static时才生效。
static
display:none
position:fixed
总结一下,offset系列是元素的框在整个布局上下文中的相对位置、宽高信息。值得注意的是,float元素并没有特殊的offsetParent,因为他不是定位元素。
字面看挺好理解的,就是跟滚动相关的接口。
总结一下,scroll主要影响的是后代元素,scrollTop ~ height + scrollTop是子元素的可见部分。
scrollTop ~ height + scrollTop
getBoundingClientRect(): 从其接口名字上的构造来说,是获取 client Area的边界矩形的参数,也就是client Area + bounding,最终获取到的也就是该边界相对浏览器视口左上角的坐标,注意返回值是浮点数。更深一步说,这个是绘制时rect的位置。
The text was updated successfully, but these errors were encountered:
No branches or pull requests
1. width、height、left、top系列
1.1 client系列
client这个名字看起来很莫名,但是注意搜索的话还是可以找到一些端倪。
client系列来自IE的DTHML模型, IE的DHTML出现在IE4.0, IE4.0发布于1997年,也就是说client这个名字很可能跟windows 图形编程有关。经查,win32的paint接口,把整个窗口中除了边框,各种菜单、工具栏的部分就叫
client area
,实际上的意思就是呈现主要内容的部分,这个是出处。这样也就很明朗了,从window推广到每个DOM节点,除去边框和滚动条部分就叫
client area
了。(不过有意思的是,window反而没有client系列接口,取而代之是IE4.0时的document.body.clientxx
和IE6之后的document.documentElement.clientxx
。border-top
的值,原意是border-top
和上滚动条之和,好像并不存在上滚动条,所以就等同于上边框高度border-left
,如果是从右向左(ar),那么就是左边框加上滚动条我们可以给出一个结论,client系列表达的是元素自身的内部布局。具体讲,就是对应于CSS的padding、border、width/height系列。
1.2 offset系列
从字面意思上看,就是偏移,既然是样式接口,那么一定有对应的CSS属性。CSS中的偏移,也就是top、left、bottom、right,并且只有当position属性不为
static
时才生效。display:none
,或者不可见元素)或者根节点或者body节点 或者position:fixed
时为null,否则定为最近的position属性为非static的祖先元素,或者position 属性为static且为td、th、table的祖先元素,直到找到body,其他情况是null总结一下,offset系列是元素的框在整个布局上下文中的相对位置、宽高信息。值得注意的是,float元素并没有特殊的offsetParent,因为他不是定位元素。
1.3 scroll
字面看挺好理解的,就是跟滚动相关的接口。
总结一下,scroll主要影响的是后代元素,
scrollTop ~ height + scrollTop
是子元素的可见部分。1.4其他
getBoundingClientRect(): 从其接口名字上的构造来说,是获取 client Area的边界矩形的参数,也就是client Area + bounding,最终获取到的也就是该边界相对浏览器视口左上角的坐标,注意返回值是浮点数。更深一步说,这个是绘制时rect的位置。
The text was updated successfully, but these errors were encountered: