一、检测浏览器是否支持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>方式则无法获取到。

最新文章

  1. Node.js与Sails~自定义响应体responses
  2. 【转】nginx服务器安装及配置文件详解
  3. 用Visio画UML顺序图
  4. BZOJ 1854: [Scoi2010]游戏 无向图判环
  5. 使用splice实现高效的代理服务器
  6. 附录:MySQL忘记root密码
  7. linux debian 9 配置postgresSQL数据库
  8. C++实现Date日期类
  9. 数据降维之多维缩放MDS(Multiple Dimensional Scaling)
  10. CSAPP:第一章学习笔记:斗之气1段
  11. shell 终端常用插件
  12. Javascript中的反射机制(五)
  13. SQLServer为已有数据的表添加一个自增列
  14. 【函数】SAS宏的特殊字符引用【转载】
  15. rename系统调用的实现浅析
  16. Linux LVM 总结
  17. 读取 XML 数据时,超出最大字符串内容长度配额 (8192)
  18. 自适应滤波:维纳滤波器——FIR及IIR设计
  19. C#中的程序集和命名空间
  20. ueditor上传图片配置

热门文章

  1. 学会了ES6,就不会写出那样的代码
  2. [转]TEC1401.Report开发技术总结 - 第三章 使用Oracle Reports开发报表-创建一个分组报表(2/4)
  3. DataGridview 绘制行序号
  4. 五、curator recipes之选举主节点Leader Latch
  5. LinkedList实现队列存储结构
  6. python查看当前路径
  7. 03.CSS选择器--&gt;交集并集选择器
  8. JS获取第二个横杠后面的内容
  9. javascript 理解继承
  10. 在linux中给你的应用做压力测试