操作表格

 属性:

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. 知问前端——日历UI(二)

    datapicker外观选项 属性 默认值/类型 说明 disabled false/布尔值 禁用日历 numberOfMonths 1/数值 日历中同时显示的月份个数.默认为1,如果设置3就同时显示 ...

  2. React module methods with passing props to child or invoking callback to parent.

    Some code samples for this pupose: import React from "react"; import MyDemo from "./m ...

  3. [bzoj2186][Sdoi2008]沙拉公主的困惑——数论

    题目大意 求 \[\sum_{i = 1}^{N!} [gcd(i, M!) = 1]\] 题解 显然,题目就是求 \[N!(1-\frac{1}{p_1})(1-\frac{1}{p_2})...\ ...

  4. spring自定义参数绑定(日期格式转换)

    spring参数绑定时可能出现 BindException(参数绑定异常),类似下面的日期绑定异常(前台传过来是String类型,实际的pojo是Date类型) default message [Fa ...

  5. 安装l Xposed Framework

    How to install Xposed Framework on Android 4.x.x :   1. For Android 4.0.3 through 4.4.4 Visit this X ...

  6. Linux服务器中毒事件(libudev.so)

    今天机房管理人员反馈公司的某台服务器在防火墙上的连接数超限,登陆服务器时发现非常卡顿,远程登录后查看,CPU持续100%,且有一长度为10的随机字符串进程,kill掉,会重新生成另外长度为10的字符串 ...

  7. 如何在 Linux 上锁定虚拟控制台会话

    当你在共享的系统上工作时,你可能不希望其他用户偷窥你的控制台中看你在做什么.如果是这样,我知道有个简单的技巧来锁定自己的会话,同时仍然允许其他用户在其他虚拟控制台上使用该系统.要感谢 Vlock(Vi ...

  8. HTTP===如何理解网关

    首先举个例子: 假设你的名字叫小不点(很小),你住在一个大院子里,你的邻居有很多小伙伴,父母是你的网关.当你想跟院子里的某个小伙伴玩,只要你在院子里大喊一声他的名字,他听到了就会回应你,并且跑出来跟你 ...

  9. python进程池pool的starmap的使用

    #!/usr/bin/env python3 from functools import partial from itertools import repeat from multiprocessi ...

  10. web开发文档整理

    django 1.11版中文文档 django 1.11版英文文档 Redis命令参考文档 Axios中文文档 Axios英文官方文档 Django REST Framework官方文档 Vue.js ...