操作表格

 属性:

caption    标题元素

tHead    表头元素

tFoot    表尾元素

tBodies    主体元素集合,通过下标取

row    行元素集合,通过下标取

 方法:

createCaption()

createTHead()

createTFoot()

deleteCaption()

deleteTHead()

deleteTFoot()

deleteRow(pos)

insertRow(pos)

 tbody的属性和方法:

rows    行集合

deleteRow(pos)    删除第几行

insertRow(pos)    插入行到那个位置

 tr的属性和方法:

cells    单元格集合

deleteCell(pos)    删除单元格

insertCell(pos)    插入单元格到那个位置

 注意:

不支持td,tbody方法

操作样式

 检查dom2级css能力:

1
document.implementation.hasFeature('CSS2','2.0');

 访问元素的样式:

行内样式:

调用方式

style.color,style.fontSize,style[font-size]

属性

cssText    css文本内容

length    样式个数

方法
                getPropertyPriority(name)    含有important则返回important

getPropertyValue(name)    获取属性值

setProperty(name,v,p)    设置属性

removeProperty(name)    移除属性

获取计算后的样式:

IE不支持getComputedStyle

IE支持currentStyle属性

1
var style = window.getComputedStyle ? window.getComputedStyle(table,null) : null || table.currentStyle;

 操作样式表:

基本方式

ele.id

ele.className

三个定义方法

是否存在class

1
2
3
4
//判断是否存在这个class
function hasClass(element, className) {
    return element.className.match(new RegExp('(\\s|^)' + className + '(\\s|$)'));
}

添加class

1
2
3
4
5
6
//添加一个class,如果不存在的话   
function addClass(element, className) {
    if (!hasClass(element, className)) {
        element.className += " " + className;
    }
}

删除class

1
2
3
4
5
6
//删除一个class,如果存在的话   
function removeClass(element, className) {
    if (hasClass(element, className)) {
        element.className = element.className.replace(new RegExp('(\\s|^)' + className + '(\\s|$)'), ' ');
    }
}

HTMLLinkElement,HTMLStyleElement

1
var link = document.getElementsByTagName('link')[0];

sheet属性兼容

非IE使用sheet

IE使用styleSheet

1
var sheet = link.sheet || link.styleSheet;

css规则

非IE    sheet.clssRules、sheet.deleteRule()、sheet.insertRule()

IE    sheet.rules、sheet.removeRule()、sheet.addRule()

1
2
3
4
5
6
7
8
9
function insertRule(sheet, selectorText, cssText, position) {
    //如果是非IE   
    if (sheet.insertRule) {
        sheet.insertRule(selectorText + "{" + cssText + "}", position);
        //如果是IE   
    else if (sheet.addRule) {
        sheet.addRule(selectorText, cssText, position);
    }
}
1
2
3
4
5
6
7
8
9
function deleteRule(sheet, index) {
    //如果是非IE   
    if (sheet.deleteRule) {
        sheet.deleteRule(index);
        //如果是IE   
    else if (sheet.removeRule) {
        sheet.removeRule(index);
    }
}

获取元素

 CSS大小:

通过style内联获取元素大小

ele.style.width、 ele.style.height

通过计算元素大小

1
var style = window.getComputedStyle ? window.getComputedStyle(table,null) : null || table.currentStyle;

sytle.width、style.height

通过CSSStyleSheet

1
2
var sheet = document.styleSheets[0]; //获取link 或style
var rule = (sheet.cssRules || sheet.rules)[0]; //获取第一条规则

rule.style.width、rule.style.height

 实际大小:

元素可视区大小    内容+内边距

ele.clientWidth、ele.clientHeight

元素滚动内容大小    滚动条

ele.scrollWidth、ele.scrollHeight

元素实际大小    内容+内边距+边框+滚动条

ele.offsetWidth、ele.offsetHeight

 周边大小:

边框大小 不支持右下

ele.clientLeft、ele.clientTop

相对父元素的位置

ele.offsetLeft、ele.offsetTop

滚动条被隐藏的大小

​    ​    ​ele.scrollLeft、ele.scrollTop

 

DOM系统学习-表格、样式和元素大小的更多相关文章

  1. DOM系统学习-进阶

    DOM类型  Node类型: 常用类型: ​    ​    ​元素节点 ELEMENT_NODE ​    ​    ​属性节点 ATTRIBUTE_NODE ​    ​    ​文本节点 TEX ...

  2. DOM系统学习-基础

    DOM介绍  DOM介绍: D 网页文档 O 对象,可以调用属性和方法 M 网页文档的树型结构  节点: DOM将树型结构理解为由节点组成.     节点种类: 元素节点.文本节点.属性节点等 查找元 ...

  3. Javascript高级编程学习笔记(52)—— DOM2和DOM3(4)元素大小

    在日常实践中,我们在使用JS的时候难免会需要获取元素的大小及位置 首先要声明的是,这一部分的内容并不属于DOM2样式规范,因为DOM中并没有对我们如何获取元素大小的相关信息做出规范 偏移量 偏移量及元 ...

  4. 【学习笔记】HTML基础:列表、表格与媒体元素

    一.列表是信息资源的一种展现形式,它可以使信息结构化和条理化,并以列表的样式显示出来,以便浏览者能够快速的获取相应的信息. 1.无需列表 <ul> <li>第一项</li ...

  5. 剑指前端(前端入门笔记系列)——DOM(元素大小)

    DOM——元素大小   DOM中没有规定如何确定页面中与元素的大小,IE率先映入了一些属性来确定页面中元素的大小,以便开发人员使用,目前,所有主要的浏览器都已经支持这些属性了.   1.偏移量(单位为 ...

  6. android学习笔记50——SQLiteOpenHelper、android实现系统自带样式

    SQLiteOpenHelper SQLiteOpenHelper是android提供的一个管理数据库的工具类,可用于管理数据库的创建和版本更新. 一般的用法是创建SQLiteOpenHelper的子 ...

  7. DIV+CSS系统学习:转载

    第一部分 HTML 第一章 职业规划和前景 职业方向规划定位: web前端开发工程师 web网站架构师 自己创业 转岗管理或其他 web前端开发的前景展望: 未来IT行业企业需求最多的人才 结合最新的 ...

  8. dojo/dom-geometry元素大小

    在进入源码分析前,我们先来点基础知识.下面这张图画的是元素的盒式模型,这个没有兼容性问题,有问题的是元素的宽高怎么算.以宽度为例,ff中 元素宽度=content宽度,而在ie中 元素宽度=conte ...

  9. HTML+CSS纯干货就业前基础到精通系统学习2016/9/3

    1:HTML纯干货学习后的达到的效果 (1):会使用HTML的基本结构,创建网页 (2):会使用文本字体相关标签,实现文字修饰和布局 (3):会使用图像.超链接相关标签,实现图文并茂的页面 (4):会 ...

随机推荐

  1. 【洛谷 P1251】 餐巾计划问题 (费用流)

    题目链接 我做的网络流24题里的第一题.. 想是不可能想到的,只能看题解. 首先,我们拆点,将一天拆成晚上和早上,每天晚上会受到脏餐巾(来源:当天早上用完的餐巾,在这道题中可理解为从原点获得),每天早 ...

  2. 第一个java的小东西

    第一次自己写的一个java的小东西,毕竟自己第一次写的,其中可谓是历经艰难,最后总结下来就是java实在是不适合写界面化的东西代码量比较大,这还不是最关键的,最关键的是控件的位置实在是太难控制了. 这 ...

  3. 斜率优化DP讲解

    对于斜率优化的DP转移方程,一般以w[i]=max(w[j]+(sum[i]-sum[j])*v)的1D1D形式为主,直观看来就是前j个为若干个阶段,第j+1到第i个为一个阶段,每个阶段有自己的代价或 ...

  4. python Fielddata is disabled on text fields

    # 执行https://www.elastic.co/guide/cn/elasticsearch/guide/current/_aggregation_test_drive.html中的例子时报错F ...

  5. rtp/rtsp over http的学习

    要做rtp/rtsp over http, 我对http也有点了解, 以前也做过rtp/rtsp over tcp/udp传输264视频流, 但刚开始还是没有一点思路,想着把http和rtp等联系到一 ...

  6. C#中文乱码转换

    string text="中文";string keyword;byte[] buffer= Encoding.UTF8.GetBytes(text);keyword=Encodi ...

  7. unixbench安装使用

    UnixBench是一个类unix系(Unix,BSD,Linux)统下的性能测试工具,一个开源工具,被广泛用与测试linux系统主机的性能.Unixbench的主要测试项目有:系统调用.读写.进程. ...

  8. JavaScript的条件运算符与条件语句

    1.条件运算符 比较运算符 ==    判断左右两边数据的值是否相等 ===   判断左右两边数据的之是否相等,同时还判断两边的数据类型是否一样 !=  比较运算符的比较结果都是布尔值,true或者f ...

  9. KDJ金叉测试

    # -*- coding: utf-8 -*- import os import pandas as pd # ========== 遍历数据文件夹中所有股票文件的文件名,得到股票代码列表stock_ ...

  10. Visualbox安装Ubuntu网络设置

    注意:Windows 10在安装Visualbox后,创建的Ubuntu系统只有32位的,没有64位供选择,原因是Windows 10系统自带的Hyper-V系统占用了CPU虚拟化技术,解决的方法是取 ...