一、检测浏览器是否支持css

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

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

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

<script type="text/javascript">
window.onload = function(){
//检测浏览器是否支持 DOM1 级 CSS 能力或 DOM2 级 CSS 能力
alert('DOM1 级 CSS 能力:' + document.implementation.hasFeature('CSS', '2.0'));
alert('DOM2 级 CSS 能力:' + document.implementation.hasFeature('CSS2', '2.0'));
}
</script>

二、获取和设置行内样式

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

  

  1、使用行内style获取行内样式

<script type="text/javascript">
window.onload = function(){
var box = document.getElementById('box'); //获取 box
alert(box.style);//[object CSS2Properties] CSS样式对象
alert(box.style.color); //获取行内样式中的color属性的值
alert(box.style.fontSize);//获取行内样式中的font-size属性的值,在这里如果属性有-这种符号有前缀后缀的需要将-去掉,后一个单词首字母大写
alert(box.style.background); alert(box.style.float);    //获取行内样式中的float属性的值,但这种写法非IE不支持,要使用下面的写法
alert(box.style.styleFloat);    //这种写法IE可以,其他不可以
alert(box.style.cssFloat);    //获取行内样式中的float属性的值,但这种写法IE6,7,8不支持,要使用下面的写法做兼容
alert(box.style.cssFloat || box.style.styleFloat);//跨浏览器兼容,谁有值就返回谁 }
</script>
</head>
<body>
<div id="box" style="color:#F00;background:#ccc; font-size:20px; float:right;">测试Div</div>
</body>

  2、使用行内style设置行内样式

<script type="text/javascript">
window.onload = function(){
var box = document.getElementById('box'); //获取 box
box.style.color="red";
box.style.fontSize="30px";
box.style.background="#ccc";
box.style.cssFloat = "right";//IE6,7,8没有用 //做兼容:
typeof box.style.cssFloat != 'undefined'? box.style.cssFloat='right':box.style.styleFloat='right';
}
</script>
</head>
<body>
<div id="box">测试Div</div>
</body>

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

  Firefox、Safari、Opera9+、Chrome 支持这些属性和方法。IE 6,7,8只支持 cssText,而getPropertyCSSValue()方法只有 Safari3+和 Chrome 支持。

<script type="text/javascript">
window.onload = function(){
var box = document.getElementById('box'); //获取 box
alert(box.style.cssText); //获取 CSS 代码
alert(box.style.length); //获取CSS属性的数量 IE6,7,8不支持
//box.style.removeProperty('color'); //移除某个 CSS 属性,IE6,7,8 不支持
box.style.setProperty('color','blue'); //设置某个 CSS 属性,IE6,7,8 不支持
}
</script>
</head>
<body>
<div id="box" style="color:#F00; font-size:20px;">测试Div</div>
</body>

  style 属性仅仅只能获取行内的 CSS 样式,对于另外两种形式内联<style>和链接<link>方式则无法获取到。

JavaScript的DOM_操作行内样式的更多相关文章

  1. JS:操作样式表1:行内样式

    //访问元素样式1, stye属性只对行内样式有用 var box = document.getElementById("box"); // alert(box.style.col ...

  2. javascript常用函数封装——运动、cookie、ajax、获取行内样式兼容写法、拖拽

    运动.cookie.ajax.获取行内样式兼容写法.拖拽封装大合集. //url,data,type,timeout,success,error function ajax(options){ //- ...

  3. CSS 行内样式 页内样式 外部样式

    行内标签: <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF ...

  4. important覆盖行内样式

    优先级,外部样式<内部样式<行内样式,后台富文本编辑器编辑的正文显示在前台时可用!important覆盖其行内样式 今天的问题,font-family:"思源黑体 CN!impo ...

  5. css的三种使用方式:行内样式,内嵌样式,外部引用样式

    三中的使用方法的简单实例如下: 行内样式: <!doctype html> <html> <head> <meta charset="UTF-8&q ...

  6. 黑马vue---17、vue中通过属性绑定绑定style行内样式

    黑马vue---17.vue中通过属性绑定绑定style行内样式 一.总结 一句话总结: 如果属性名中带有短线必须加引号,比如: h1StyleObj: { color: 'red', 'font-s ...

  7. 原生js去除行内样式

    概述 今天我用js给dom元素设置样式,碰到了一些问题,记下来供以后开发时参考,相信对其他人也有用. 心得 js加上class: $dom.classList.add('some-class'); j ...

  8. 为何给CheckBox设置了checked属性还是没有勾选,行内样式都显示了checked

    为何给CheckBox设置了checked属性还是没有勾选,行内样式都显示了checked 正常情况下我们设置给CheckBox一个checked属性后一般都会选中 然而我今天在做案例的时候却遇到了类 ...

  9. HTML+CSS教程(四)选择器(id选择器,类选择器,标签选择器,子代选择器,后代选择器,组选择器,伪类选择器)/css引入页面的形式(行内样式、内嵌样式、外联样式)

    一.回顾内容 前端的三大组成(三大模块)    HTMl(超文本标记语言) 结构层    css(层叠样式表) 表现层:用来美化HTML结构    JS(Java script)(脚本语言) 行为层: ...

随机推荐

  1. 注册表修改 Devenv 默认启动 Visual Studio 版本

    本人机器上安装了多个版本Visual Studio.目前开发主要使用VS2015,,但每次使用运行->devenv 启动的都是 VS2013.所以不是很方便. 如果VS2013扩展包出问题要使用 ...

  2. nodejs添加jsonwebtoken验证

    具体使用模块: 使用compression压缩处理请求响应.cors模块添加跨域.helmet安全模块.body-parser解析请求参数.jsonwebtoken用于生成及校验token.使用内置c ...

  3. golang学习之defer

    golang中的defer通常用于执行一些资源释放性操作,比如open/close.connect/disconnect.lock/unlock等,对defer理解主要记住以下三点: 1.defer ...

  4. Hadoop源码学习笔记(1) ——第二季开始——找到Main函数及读一读Configure类

    Hadoop源码学习笔记(1) ——找到Main函数及读一读Configure类 前面在第一季中,我们简单地研究了下Hadoop是什么,怎么用.在这开源的大牛作品的诱惑下,接下来我们要研究一下它是如何 ...

  5. 二:SpringCloud-Eureka

    五:Eureka服务注册与发现 1. 是什么 Spring Cloud 封装了 Netflix 公司开发的 Eureka 模块来实现==服务注册和发现==(请对比Zookeeper). Eureka ...

  6. Redis-SDS

    Redis 的简单动态字符串 (simple dynamic string,SDS) SDS的结构: struct sdshdr { int len;  //保存的字符串长度. int free;  ...

  7. SSH文件上传代码片段

    一.文件上传限制: 在web.xml中配置Struts前端控制器时,设置初始化参数:如下图所示 二.controller代码 @Namespace("/") @ParentPack ...

  8. LeetCode赛题394----Decode String

    394. Decode String Given an encoded string, return it's decoded string. The encoding rule is: k[enco ...

  9. Java学习笔记(4)----Public,Protected,Package,Private修饰符可见性

    Java修饰符类型(public,protected,private,friendly) public的类.类属变量及方法,包内及包外的任何类均可以访问:protected的类.类属变量及方法,包内的 ...

  10. 学习servlet心得

    1,关于字符编码问题: // resp.setCharacterEncoding("UTF-8");//这个的作用仅仅只是输出字符,不做格式转换成HTML // resp.setC ...