CSSOM

1. css样式表模型(cssom的本体)

document.styleSheets

这样可以获取样式表列表

每个样式表都是一堆的css规则(cssRules和rules是一样的)

而每一条rule可能是以下其中一种类型

  • CSSStyleRule(最为常见)
  • CSSCharsetRule
  • CSSImportRule
  • CSSMediaRule
  • CSSFontFaceRule
  • CSSPageRule
  • CSSNamespaceRule
  • CSSKeyframesRule
  • CSSKeyframeRule
  • CSSSupportsRule

 那CSSStyleRule为例,展开:

最重要的就是cssText、selectorText、style[0]

2.cssom view

CSSOM View 这一部分的 API,可以视为 DOM API 的扩展

窗口部分

resizeTo、resizeBy、moveTo、moveBy方法,这些方法只能对window.open出来的窗口有作用(示例),而且不适用于移动端浏览器

还规定了window.open的第3个参数:

window.open("about:blank", "_blank" ,"width=100,height=100,left=100,right=100" )

滚动部分

视口

scrollX、scrollY:表示视口 X、Y 方向上的当前滚动距离(修改不会改变实际滚动效果)

scrollTo、scrollBy:使得页面滚动(使用后会影响scrollX、scrollY(前提是它们没有被js修改过))

值得注意的是,如果想监听整个页面的滚动,只能是对document对象来监听:

document.addEventListener("scroll", function(event){
    // ...
})

而不能对document.documentElement或者是document.body进行监听,这是无效的

元素

scrollLeft、scrollTop:表示元素 X、Y 方向上的当前滚动距离(和视口的scrollX、scrollY一个意思,但是修改会产生实际滚动效果)

scrollWidth、scrollHeight:表示元素内部的滚动内容的宽度、高度

scroll(x, y)、scrollBy(x, y):使得元素滚动(和视口的scrollTo、scrollBy一个意思)

scrollIntoView(arg) : 父元素滚动到可以看到当前元素的状态(详情

布局部分

innerWidth、innerHeight:视口大小

outerWidth、outerHeight:浏览器大小

devicePixelRatio:物理像素和 CSS 像素单位的倍率关系,Retina 屏这个值是 2,后来也出现了一些 3 倍的 Android 屏

screen.width、screen.height:设备屏幕大小

screen.availWidth、screen.availHeight:设备屏幕可以渲染的大小(例如windows桌面最下面有任务栏,所以availHeight=总屏幕高-任务栏高)

screen.colorDepth、screen.pixelDepth:都是固定24,预留给以后标准使用

原文地址:https://www.cnblogs.com/amiezhang/p/10903867.html