zoukankan      html  css  js  c++  java
  • javascript 获取渲染样式

    渲染样式获取方法:

    iedomOjbect.currentStyle.xxx

      domOject DOM对象

      xxx 可以是属性、方法、样式属性值(写法和标准有差别)

    具体:http://www.jb51.net/shouce/dhtml/objects/currentStyle.html

    注意点:样式获取的结果包含单位。如其中,border应写为borderStyle。

    currentStyle 返回反映页面所应用的样式设置的值,但可能并不反映获取值时渲染所采用的值。例如,样式值设置为 "color:red; display:none" 的对象,将返回 currentStyle.color 为 red,尽管该对象并不在页面上渲染。也就是说,currentStyle 对象并不受渲染与否的绑定。在下面示例区的第三个例子演示了此行为。禁用的样式表也不影响 currentStyle 值。

    返回值的单位与设置对象时的单位相同。例如,若对象的颜色是以内嵌 STYLE="color:'green'" 的格式设置的,那么 object.currentStyle.color 将返回 green 而不是 #00FF00 (与绿色相等的红绿蓝十六进制值)。但是,当currentStyle 对象返回对象值的时候出现在作者所设置的对象值中的大写和多余的空白将被去掉。

    currentStyle 对象支持用户自定义的样式规则属性。

    currentStyle 对象是异步的。这意味着样式不可能被设置后马上就能查询,而是返回旧值。因此,对于含有 addImport 这样方法的想要获得所期待的 currentStyle 行为的脚本,该脚本需要包含一个调用方法的函数和一个检查currentStyle 的函数。对于需要在页面装载的时候检查当前属性的脚本,脚本必须等到 body 元素装入且页面被选然后,否则 currentStyle 的值可能不反映所显示的情况。

    标准:window.getComputedStyle(element[, pseudoElt]).getPropertyValue(cssValue)

      element 元素

      pseudoElt 可以不写或为null

      cssValue css属性

      支持ie9+

      

    扩展点(伪类)

    getComputedStyle支持伪类:

    如:window.getComputedStyle(document.getElementById(xxx),':after').content

     ie不支持直接获取伪类的属性值,故封装一个方法:

    function getStyleSheet(selector){
    var sheets=document.styleSheets,regxp=new RegExp(".*"+selector+"\s*$","i");
      for(var is=sheets.length-1;is>=0;is--){
        var rules=sheets[is].rules||sheets[is].cssRules;
        for(var ir=rules.length-1;ir>=0;ir--){
          var rule=rules[ir];
          if(rule.selectorText&&regxp.test(rule.selectorText)){
            return rule.style;
          }
        }
      }
    }

     getStyleSheet('span :after');

    未完待续。

    当记忆全部忘光,留下来的才是你自己的。
  • 相关阅读:
    顺序栈的模拟
    Maven安装教程详解
    C# CRC
    Oracle知识分类之常见规范
    Oracle知识分类之异常
    el-tree树结构的数据封装
    sessionStorage和localStorage
    el-form 中为el-input 添加正则校验 以及el-input正则限制
    动态组件与父子传值的灵活应用 ref控制子组件 props,emit传值
    el-tree树组件的封装 (运用递归对接口返回当前菜单数据为对象处理)
  • 原文地址:https://www.cnblogs.com/kai08/p/3819960.html
Copyright © 2011-2022 走看看