第一百一十六节,JavaScript,DOM操作样式

JavaScript,DOM操作样式

一.操作样式

CSS作为(X)HTML的辅助,可以增强页面的显示效果。但不是每个浏览器都能支持最新的CSS能力。CSS的能力和DOM级别密切相关,所以我们有必要检测当前浏览器支持CSS能力的级别。

DOM1级实现了最基本的文档处理,DOM2和DOM3在这个基础上增加了更多的交互能力,这里我们主要探讨CSS,DOM2增加了CSS编程访问方式和改变CSS样式信息。

DOM一致性检测


功能


版本号


说明


Core


1.0、2.0、3.0


基本的DOM,用于表现文档节点树


XML


1.0、2.0、3.0


Core的XML扩展,添加了对CDATA等支持


HTML


1.0、2.0


XML的HTML扩展,添加了对HTML特有元素支持


Views


2.0


基于某些样式完成文档的格式化


StyleSheets


2.0


将样式表关联到文档


CSS


2.0


对层叠样式表1级的支持


CSS2


2.0


对层叠样式表2级的支持


Events


2.0


常规的DOM事件


UIEvents


2.0


用户界面事件


MouseEvents


2.0


由鼠标引发的事件(如:click)


MutationEvents


2.0


DOM树变化时引发的事件


HTMLEvents


2.0


HTML4.01事件


Range


2.0


用于操作DOM树中某个范围的对象和方法


Traversal


2.0


遍历DOM树的方法


LS


3.0


文件与DOM树之间的同步加载和保存


LS-Async


3.0


文件与DOM树之间的异步加载和保存


Valuidation


3.0


在确保有效的前提下修改DOM树的方法

implementation对象的hasFeature()方法

hasFeature()方法检测浏览器是否支持DOM1级CSS能力或DOM2级CSS能力,参数第一个css级别,参数二css版本,返回布尔值,IE上不精确
使用方式:
document.implementation.hasFeature(‘css级别‘, ‘css版本‘)

window.onload = function() { //window.onload事件,等待html执行完成后,执行匿名函数
    //检测浏览器是否支持DOM1级CSS能力或DOM2级CSS能力
    alert(‘DOM1级CSS能力:‘ + document.implementation.hasFeature(‘CSS‘, ‘2.0‘));
    alert(‘DOM2级CSS能力:‘ + document.implementation.hasFeature(‘CSS2‘, ‘2.0‘));
};

PS:这种检测方案在IE浏览器上不精确,IE6中,hasFeature()方法只为HTML和版本1.0返回true,其他所有功能均返回false。但IE浏览器还是支持最常用的CSS2模块。

1.访问元素的样式

CSS属性及JavaScript调用

任何HTML元素标签都会有一个通用的属性:style。它会返回CSSStypeDeclaration对象。下面我们看几个最常见的行内style样式的访问方式。

CSS属性及JavaScript调用


CSS属性


JavaScript调用


color


style.color


font-size


style.fontSize


float


非IE:style.cssFloat


float


IE:style.styleFloat

style属性,获取元素节点的行内style样式,也就是行内css样式,返回样式的集合

style属性,获取到样式集合后,可以使用样式属性名称获取或设置属性值
使用方式:
目标节点.style

//<div id="box" style="color: #ff2217; background: #fff137; font-size: 20px; float: right;">测试1</div>
window.onload = function() { //window.onload事件,等待html执行完成后,执行匿名函数
    var yshi = document.getElementById(‘box‘);  //通过ID获取到目标节点
    alert(yshi.style); //style属性,获取元素节点的行内style样式,也就是行内css样式,返回样式的集合
    //返回:[object CSS2Properties] 样式集合

    //通过样式属性名称,获取属性值
    alert(yshi.style.color);  //查看color颜色属性值
    //返回;rgb(255, 34, 23) 浏览器计算过的颜色属性值

    alert(yshi.style.background); //查看背景颜色属性值
    //返回;#fff137   浏览器计算过的颜色属性值

    alert(yshi.style.fontSize);  //查看字体大小属性值
    //注意:属性名称单词如果是两段或者三段的,如:font-size,在写属性名称时将(-)分隔符去掉,分隔符后面的第一个字母大写,如:fontSize
    //返回:20px

    //alert(yshi.style.float);  //查看浮动属性值,
    //注意:float 是js的保留字,如果遇到关键字或保留字,在属性名称前加小写的css,然后将属性名称第一个字母大写,如下
    //alert(yshi.style.cssFloat); //查看浮动属性值,
    //但是cssFloat    IE浏览器不支持,IE可以将前面的css换成style,如:styleFloat
    //alert(yshi.style.styleFloat);
    //但是styleFloat   除了IE外其他浏览器也不支持
    //所以我们需要做一个兼容
    //做一个逻辑或,第一个不支持,就会用第二个
    alert(yshi.style.cssFloat || yshi.style.styleFloat);    //非IE用cssFloat,IE用styleFloat

};

以上取值方式也可以赋值,最后一种赋值可以如下:

window.onload = function() { //window.onload事件,等待html执行完成后,执行匿名函数
    var yshi = document.getElementById(‘box‘);  //通过ID获取到目标节点
    //三元运算,判断如果浏览器支持cssFloat就用cssFloat,如果不支持就用styleFloat
    typeof yshi.style.cssFloat != ‘undefined‘ ? yshi.style.cssFloat = ‘right‘ : yshi.style.styleFloat = ‘right‘;
};

DOM2级样式规范为style定义了一些属性和方法

DOM2级样式规范为style定义了一些属性和方法


属性或方法


说明


cssText


访问或设置style中的CSS代码


length


CSS属性的数量


parentRule


CSS信息的CSSRule对象


getPropertyCSSValue(name)


返回包含给定属性值的CSSValue对象


getPropertyPriority(name)


如果设置了!important,则返回,否则返回空字符串


item(index)


返回指定位置CSS属性名称


removeProperty(name)


从样式中删除指定属性


setProperty(name,v,p)


给属性设置为相应的值,并加上优先权

1

时间: 2024-12-09 20:07:54

第一百一十六节,JavaScript,DOM操作样式的相关文章

第三百一十六节,Django框架,中间件

第三百一十六节,Django框架,中间件 django 中的中间件(middleware),在django中,中间件其实就是一个类,在请求到来和结束后,django会根据自己的规则在合适的时机执行中间件中相应的方法. 在django项目的settings模块中,有一个 MIDDLEWARE变量,其中每一个元素就是一个中间件(也就是一个中间件模块的一个类),如下. settings模块中 #中间件 MIDDLEWARE = [ 'django.middleware.security.Securit

第一百一十四节,JavaScript文档对象,DOM进阶

JavaScript文档对象,DOM进阶 学习要点: 1.DOM类型 2.DOM扩展 3.DOM操作内容

第一百一十三节,JavaScript文档对象,DOM基础

JavaScript文档对象,DOM基础 学习要点: 1.DOM介绍 2.查找元素 3.DOM节点 4.节点操作 DOM(Document Object Model)即文档对象模型,针对HTML和XML文档的API(应用程序接口).DOM描绘了一个层次化的节点树,运行开发人员添加.移除和修改页面的某一部分.DOM脱胎于Netscape及微软公司创始的DHTML(动态HTML),但现在它已经成为表现和操作页面标记的真正跨平台.语言中立的方式. 一.DOM介绍 DOM中的三个字母,D(文档)可以理解

一起talk C栗子吧(第一百一十六回:C语言实例--线程同步之互斥量二)

各位看官们,大家好,上一回中咱们说的是线程同步之信号量的例子,这一回咱们继续说该例子.闲话休提,言归正转.让我们一起talk C栗子吧! 我们在上一回中详细介绍了互斥量相关函数的用法,这一回中,我们介绍如何使用这些函数来操作互斥量. 下面是详细的操作步骤: 1.定义一个互斥量A,用来同步线程: 2.在创建线程的进程中使用pthread_mutex_init函数初始化互斥量,互斥量的属性使用默认值: 3.在读取数据的线程中读取数据,首先使用pthread_mutex_lock函数对互斥量A进行加锁

第一百一十八节,JavaScript,动态加载脚本和样式

JavaScript,动态加载脚本和样式 一动态脚本 当网站需求变大,脚本的需求也逐步变大.我们就不得不引入太多的JS脚本而降低了整站的性能,所以就出现了动态脚本的概念,在适时的时候加载相应的脚本. 比如:我们想在需要检测浏览器的时候,再引入检测文件. 1动态加载js文件 window.onload = function() { //window.onload事件,等待html执行完成后,执行匿名函数 //判断要加载的文件是否加载成功 alert(typeof BrowserDetect); }

第一百二十六节,JavaScript,XPath操作xml节点

第一百二十六节,JavaScript,XPath操作xml节点 学习要点: 1.IE中的XPath 2.W3C中的XPath 3.XPath跨浏览器兼容 XPath是一种节点查找手段,对比之前使用标准DOM去查找XML中的节点方式,大大降低了查找难度,方便开发者使用.但是,DOM3级以前的标准并没有就XPath做出规范:直到DOM3在首次推荐到标准规范行列.大部分浏览器实现了这个标准,IE则以自己的方式实现了XPath. 一.IE中的XPath 在IE8及之前的浏览器,XPath是采用内置基于A

第三百七十六节,Django+Xadmin打造上线标准的在线教育平台—创建用户操作app,在models.py文件生成5张表,用户咨询表、课程评论表、用户收藏表、用户消息表、用户学习表

第三百七十六节,Django+Xadmin打造上线标准的在线教育平台-创建用户操作app,在models.py文件生成5张表,用户咨询表.课程评论表.用户收藏表.用户消息表.用户学习表 创建名称为app_operation的用户操作APP,写数据库操作文件models.py models.py文件 #!/usr/bin/env python # -*- coding:utf-8 -*- from __future__ import unicode_literals from datetime i

javascript DOM 操作基础知识小结

经常用到javascript对dom,喜欢这方便的朋友也很多,要想更好的对dom进行操作,这些基础一定要知道的. DOM添加元素,使用节点属性 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.

javascript DOM 操作

在javascript中,经常会需要操作DOM操作,在此记录一下学习到DOM操作的知识. 一.JavaScript DOM 操作 1.1.DOM概念 DOM :Document Object Model(文本对象模型). D : 文档(html或xml文档) O : 对象(文档对象) M : 模型 1.2.DOM结构 DOM将文档以家谱树的形式来表现. 下面是一个简单的html文档,我们可以看出该文档的DOM结构如下 1 <!DOCTYPE html> 2 <html> 3 <