• JavaScript的DOM_操作行内样式


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

  • 相关阅读:
    谈论quick-cocos2d-x和cocos2d-x lua了解差异
    VirtualBox更改虚拟机磁盘VDI的大小
    HDU 1484 Basic wall maze (dfs + 记忆)
    CII-原子
    [Openstack] Expecting an auth URL via either --os-auth-url or env[OS_AUTH_URL]
    iOS安全攻防(三):使用Reveal分析他人app
    数据库索引的作用和长处缺点
    用EnableMenuItem不能使菜单变灰的原因
    Java设计模式-观察者模式
    IplImage 封装释放
  • 原文地址:https://www.cnblogs.com/LO-ME/p/4590127.html
Copyright © 2020-2023  润新知