zoukankan      html  css  js  c++  java
  • JS权威指南读书笔记(六)

    第十五章 脚本化文档
     
    1 文档对象模型(DOM)是表示和操作HTML和XML文档内容的基础API。
    文档节点的部分层次结构
    Text和CDATASection都是characterData的子类型。
    3 getElementsByNames() 定义在HTMLDocument类中,而不是Document(文档可能代表HTML也可能代表XML) 类中,所以只针对HTML文档可用。
    4 由于历史原因,HTMLDocument类定义了一些快捷属性来访问各种各样的节点。例如:images、forms和links等属性指向行为类似只读数组的<img>、<form>和<a>(但只包含那些有href属性的a标签)元素集合。
    5 NodeList 和 HTMLCollection 区别(见博文)。
    querySelectorAll() 返回的NodeList对象并不是实时
    NodeType 节点的类型
        a 9 代表Document节点
        b 1 代表Element节点
        c 3 代表Text节点
        d 8 代表Comment节点
        e 11 代表DocumentFragment节点
    nodeValue Text节点或Comment节点的文本内容。
    9 从HTML属性名转换到JS属性名应该采用小写。但是,如果属性名包含不止一个单词,则将除了第一个单词以外的单词的首字母大写;有些HTML属性名在JS中是保留字,对于这些属性,一般规则是为属性名加前缀 "html",例如htmlFor;唯一例外是,class属性,将变为className。
    10 HTML5在Element对象上定义了dataset属性,该属性指代了一个对象,它的各个属性对应于去掉前缀的data-属性(强调文档合法性)。
    11 元素的内容
        a 作为HTML,innerHTML, outerHTML
        b 作为纯文本,Node的textContent属性
    12 节点操作方法
        a 创建,文档 document.createElement() 或 createTextNode() 或 节点node.cloneNode(false or true)  
        b 插入,appendChild(), inserBefore(), 如果调用appendchild 或 insertBefore 将已存在文档中的一个节点再次插入,那个节点将自动从它当前的位置删除并在新的位置重新插入。
        c 删除或替换,removeChild(), replaceChild()
    13 DocumentFragment 是一个特殊的Node,它作为其他节点的一个临时的容器。
    14 文档坐标和视口坐标,元素的位置是以像素来度量的,向右代表X坐标的增加,向下代表Y坐标的增加。
    15 为了在坐标系之间相互转换,需要判定浏览器窗口的滚动条的位置。Window对象的pageXOffset(scrollX) 和 pageYOffset(scrollY) 属性在所有浏览器中提供这些值。也可以通过scrollLeft 和 scrollTop 属性来获得滚动条的位置。在标准模式下,通过查询document.ducumentElement 来获取属性,在怪异模式下,必须在document.body上查询这些属性。
    16 查询窗口的视口尺寸同上,一般window对象的innerWidth支持,或者documentElement.clientWidth, 怪异模式下,body.clientWidth.
    17 判定一个元素的尺寸和位置最简单的方法是调用它的getBoundingClientRect() 方法。它不需要参数,返回一个有left、right、top 和 bottom 属性的对象。这个方法返回元素在视口坐标中的位置("client" 是中间接指代,它就是Web浏览器客户端,专指它定义的窗口或视口)。
    18 判定元素在某点使用document 对象的elementFromPoint() 方法,传入视口坐标的X和Y坐标, 该方法返回在指定位置的一个元素(实际上不常使用)。
    19 在需要显示的HTML元素上调用 scrollIntoView() 方法,保证了元素能在视口中可见
    20 任何HTML元素的只读属性 offsetWidth 和 offsetHeight 以CSS像素返回它的屏幕尺寸,返回的尺寸包含元素的边框和内边距,除去外边距。
    21 所有HTML元素拥有offsetLeft 和 offsetTop 属性来返回元素的X 和Y 坐标(一般为文档坐标),对于已定位元素的后代,返回的坐标是相对于祖先元素的。offsetParent 属性指定这些属性所相对的父元素。
    22 clientWidth 或 clientHeight 不包含边框大小和滚动条,对于内联元素,总是返回0。
    23 scrollLeft 和 scrollTop 指定元素的滚动条的位置。通过设置这些属性来让元素中的内容滚动,元素没有scrollTo() 方法。
    24 JS的Form 对象支持submit() 和 reset() 方法。注意,直接调用表单的submit() 方法不触发onsubmit事件处理程序。
    25 设置任何标签的HTML contentedistable 属性来开启编辑功能。
     
    第十六章 脚本化CSS
    1 层叠样式表(Cascading Style Sheet,Css)是一种指定HTML 文档视觉表现的标准。
    2 各个来源的层叠
        a Web浏览器的默认样式表
        b 文档的样式表
        c 每个独立的HTML元素的style属性
    3 当浏览器厂商实现非标准CSS属性时,它们会将属性名前加一个厂商前缀。
        a Firefox -moz-
        b Chrome -webkit-
        c IE -ms-
    4 定位元素:static absolute relative fixed
    z-index只对兄弟元素(同一个容器的子元素)应用堆叠效果,并且不会应用于非定位元素(static定位)上。
    6 盒子模型
    注意:外边距与绝对定位无关
    7 box-sizing
        a content-box width或height只表示内容区域的尺寸
        b border-box  width或height表示包括内容区域、内边距和边框的尺寸
    8 可以利用calc() 计算CSS长宽的值。
    9 部分可见:overflow clip
    10 元素的style属性是一个CSSStyleDeclaration对象,该style对象的JS属性代表了HTML代码中通过style指定的CSS属性。记住,所有的值都应该是字符串。并且,它有一个cssText属性来表示样式字符串。
    11 classList方法:add remove toggle contains
    12 <style>、<link>元素和CSSStyleSheet对象都定义了一个在JS中可以设置和查询的disabled属性,设置为true,样式表将被浏览器关闭。
    13 document.styleSheets数组的元素是CSSStyleSheet对象,CSSStyleSheet对象有一个cssRules数组,它包含样式表的所有规则。
     
  • 相关阅读:
    第八章
    第十章
    第九章
    第七章
    第六章
    第五章
    第四章心得
    第二章心得
    第三章心得
    第一章心得
  • 原文地址:https://www.cnblogs.com/liutie1030/p/5748670.html
Copyright © 2011-2022 走看看