zoukankan      html  css  js  c++  java
  • DOM 样式操作

    通过js动态的修改样式

    更新样式的方法:一、使用.style方法修改样式,缺点是使样式混杂在js中,再次修改不易。二、更新class属性,更改样式。三、一次性更改很多元素样式(如换肤操作),更改样式表。

     设置HTML样式有三种方式:行内样式,内嵌样式,外部样式

    一、访问元素的样式

      element.style获得的样式只能是行内样式,获得不了外部样式表或嵌入样式表经层叠而来的样式

      var style=window.getComputedStyle(element).color 可以获取实际样式(IE9以下不兼容),获取行内样式,行内样式没有则获取样式表中的样式

      

    如何实现浏览器兼容版的window.getComputedStyle

    window.getComputedStyle能够获取元素的实际样式,但是低版本的ie8及以下不支持,如何在低版本的ie上兼容类似的功能。

    function getComputedStyle(element) {
        if(window.getComputedStyle) {
            return window.getComputedStyle(element);
        } else {
            return element.currentStyle;
        }
    }
    

      

    实现getStyle函数getStyle函数用于获取元素的实际样式,语法如下:var cssPropertyValue = getStyle (element, cssPropertyName);

    使用示例如下:
    getStyle(element, "color") 返回element元素的显示颜色,如:"rgb(0, 0, 0)"

    getStyle(element, "line-height") 返回element元素的实际行高,如:"30px"     请实现getStyle函数,要求浏览器兼容。

    <!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.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>无标题文档</title>
    <style type="text/css">
    #p1 { 100px;height: 200px;color: #09c;}
    </style>
    </head>
    <body>
    <p id="p1" style="margin:10px;">HHHH</p>
    <script>
    function getStyle(obj, attr)
    {
    if(obj.currentStyle)
    {
    return obj.currentStyle[attr]; //只适用于IE
    }
    else
    {
    return getComputedStyle(obj,false)[attr]; //只适用于FF,Chrome,Safa
    }
    return obj.style[attr]; //本人测试在IE和FF下没有用,chrome有用
    }
       window.onload=function()  
    {
    //调用
    var oDiv=document.getElementByIdx_x('p1');
    //alert(getStyle(oDiv,'width'));
    alert(getStyle(oDiv,'margin-left'));
    }
    //查询了相关资料发现问题如下:
    //style只能获取元素的内联样式,内部样式和外部样式使用style是获取不到的。 (这里我测试的在IE和FF下没有用,Chrome下有用,所有有歧义)
    //currentStyle可以弥补style的不足,但是只适用于IE。
    //getComputedStyle同currentStyle作用相同,但是适用于FF、opera、safari、chrome。
    //
    //注意:
    //currentStyle和getComputedStyle只能用于获取页面元素的样式,不能用来设置相关值。
    //如果要设置相应值,应使用style。
    </script>
    </body>
    </html>

      

        

  • 相关阅读:
    最大子序列、最长递增子序列、最长公共子串、最长公共子序列、字符串编辑距离等问题
    暑假总结20160907
    数组指针和指针数组的区别
    Matlab GUI界面
    稀疏表示(sparse representation)和字典学习
    C++设计模式——策略模式
    volatile,可变参数,memset,内联函数,宽字符窄字符,国际化,条件编译,预处理命令,define中##和#的区别,文件缓冲,位域
    MultiByteToWideChar和WideCharToMultiByte用法详解
    MFC中Listbox控件的简单使用
    window.open("url?param="+paramvalue) 服务端 乱码问题解决
  • 原文地址:https://www.cnblogs.com/happyLee/p/5059693.html
Copyright © 2011-2022 走看看