DOM系统学习-表格、样式和元素大小
操作表格
属性:
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
|
//判断是否存在这个classfunction 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 或stylevar 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系统学习-表格、样式和元素大小的更多相关文章
- DOM系统学习-进阶
DOM类型 Node类型: 常用类型: 元素节点 ELEMENT_NODE 属性节点 ATTRIBUTE_NODE 文本节点 TEX ...
- DOM系统学习-基础
DOM介绍 DOM介绍: D 网页文档 O 对象,可以调用属性和方法 M 网页文档的树型结构 节点: DOM将树型结构理解为由节点组成. 节点种类: 元素节点.文本节点.属性节点等 查找元 ...
- Javascript高级编程学习笔记(52)—— DOM2和DOM3(4)元素大小
在日常实践中,我们在使用JS的时候难免会需要获取元素的大小及位置 首先要声明的是,这一部分的内容并不属于DOM2样式规范,因为DOM中并没有对我们如何获取元素大小的相关信息做出规范 偏移量 偏移量及元 ...
- 【学习笔记】HTML基础:列表、表格与媒体元素
一.列表是信息资源的一种展现形式,它可以使信息结构化和条理化,并以列表的样式显示出来,以便浏览者能够快速的获取相应的信息. 1.无需列表 <ul> <li>第一项</li ...
- 剑指前端(前端入门笔记系列)——DOM(元素大小)
DOM——元素大小 DOM中没有规定如何确定页面中与元素的大小,IE率先映入了一些属性来确定页面中元素的大小,以便开发人员使用,目前,所有主要的浏览器都已经支持这些属性了. 1.偏移量(单位为 ...
- android学习笔记50——SQLiteOpenHelper、android实现系统自带样式
SQLiteOpenHelper SQLiteOpenHelper是android提供的一个管理数据库的工具类,可用于管理数据库的创建和版本更新. 一般的用法是创建SQLiteOpenHelper的子 ...
- DIV+CSS系统学习:转载
第一部分 HTML 第一章 职业规划和前景 职业方向规划定位: web前端开发工程师 web网站架构师 自己创业 转岗管理或其他 web前端开发的前景展望: 未来IT行业企业需求最多的人才 结合最新的 ...
- dojo/dom-geometry元素大小
在进入源码分析前,我们先来点基础知识.下面这张图画的是元素的盒式模型,这个没有兼容性问题,有问题的是元素的宽高怎么算.以宽度为例,ff中 元素宽度=content宽度,而在ie中 元素宽度=conte ...
- HTML+CSS纯干货就业前基础到精通系统学习2016/9/3
1:HTML纯干货学习后的达到的效果 (1):会使用HTML的基本结构,创建网页 (2):会使用文本字体相关标签,实现文字修饰和布局 (3):会使用图像.超链接相关标签,实现图文并茂的页面 (4):会 ...
随机推荐
- 知问前端——日历UI(二)
datapicker外观选项 属性 默认值/类型 说明 disabled false/布尔值 禁用日历 numberOfMonths 1/数值 日历中同时显示的月份个数.默认为1,如果设置3就同时显示 ...
- 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 ...
- [bzoj2186][Sdoi2008]沙拉公主的困惑——数论
题目大意 求 \[\sum_{i = 1}^{N!} [gcd(i, M!) = 1]\] 题解 显然,题目就是求 \[N!(1-\frac{1}{p_1})(1-\frac{1}{p_2})...\ ...
- spring自定义参数绑定(日期格式转换)
spring参数绑定时可能出现 BindException(参数绑定异常),类似下面的日期绑定异常(前台传过来是String类型,实际的pojo是Date类型) default message [Fa ...
- 安装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 ...
- Linux服务器中毒事件(libudev.so)
今天机房管理人员反馈公司的某台服务器在防火墙上的连接数超限,登陆服务器时发现非常卡顿,远程登录后查看,CPU持续100%,且有一长度为10的随机字符串进程,kill掉,会重新生成另外长度为10的字符串 ...
- 如何在 Linux 上锁定虚拟控制台会话
当你在共享的系统上工作时,你可能不希望其他用户偷窥你的控制台中看你在做什么.如果是这样,我知道有个简单的技巧来锁定自己的会话,同时仍然允许其他用户在其他虚拟控制台上使用该系统.要感谢 Vlock(Vi ...
- HTTP===如何理解网关
首先举个例子: 假设你的名字叫小不点(很小),你住在一个大院子里,你的邻居有很多小伙伴,父母是你的网关.当你想跟院子里的某个小伙伴玩,只要你在院子里大喊一声他的名字,他听到了就会回应你,并且跑出来跟你 ...
- python进程池pool的starmap的使用
#!/usr/bin/env python3 from functools import partial from itertools import repeat from multiprocessi ...
- web开发文档整理
django 1.11版中文文档 django 1.11版英文文档 Redis命令参考文档 Axios中文文档 Axios英文官方文档 Django REST Framework官方文档 Vue.js ...