样式计算的几种方式与兼容写法:getComputedStyle¤tStyle&style
window.getComputedStyle(element,[string])
- 1参为需要获取样式的元素,2参指定伪元素字符串(如“::after”,不需要则为null),设置2参可获取element的伪元素css样式
- 返回一个CSSStyleDeclaration对象,是所有css样式(内部、外部、内联)按层叠规则作用于该元素的最终结果样式
- 获得的样式只能读取不能设置
- 常用于FF,IE9+以下不支持此方法
element.currenStyle
- 返回一个CSSStyleDeclaration对象,是所有css样式(内部、外部、内联)按层叠规则作用于该元素的最终结果样式
- 只有IE和Opera支持使用
- 是属性不是方法
element.style:
- 只能操作内联样式,不能获取内部与外部样式
- 获取的样式属性可以进行设置
在JS工具类中封装自己的获取样式函数,兼容性写法:
export default class myUtils{
    
    static getCompatibleStyle(elemOrSelect,pseudo){
        if(!elemOrSelect) return;
        if(elemOrSelect.constructor === String) elemOrSelect = document.querySelector(elemOrSelect);
        if(!pseudo) return getComputedStyle(elemOrSelect,pseudo);
        return elemOrSelect.currentStyle ? elemOrSelect.currentStyle : getComputedStyle(elemOrSelect,null);
    }
}
调用:
<script type="module">
import utils from "./myUtils.js";
console.log(utils.getCompatibleStyle("div",null).backgroundColor);
console.log(utils.getCompatibleStyle("span","::after").display);
</script>
样式计算的几种方式与兼容写法:getComputedStyle¤tStyle&style的更多相关文章
- 在单文件组件中,引入安装模块里的css的2种方式:script中引入、style中引入
		在单文件组件中,引入安装模块里的css的2种方式:script中引入.style中引入 1.script中引入 <script> import 'bulma/css/bulma.css' ... 
- QT中QToolTip样式设置的两种方式
		方式一 使用样式表设置 ui.label->setStyleSheet("QToolTip{border:1px solid rgb(118, 118, 118); backgroun ... 
- CSS基础知识总结之css样式引用的三种方式
		在html中增加css样式有三种: 1.在标签中增加style属性: <!DOCTYPE html> <html lang="en" xmlns="ht ... 
- 原生js实现选项卡样式切换的几种方式。
		先分享一个不能实现的实例(因为es5没有块作用域) for(var i=0; i<list.length; i++ ) { list[i].onclick = function(){ tabch ... 
- 【bzoj 4455】小星星(树型DP+容斥原理+dfs建树和计算的2种方式)
		题意:给一个n个点的图和一个n个点的树,求图和树上的点一一对应的方案数.(N<=17) 解法:1.在树的结构上进行tree DP,f[i][j]表示树上点 i 对应图上点 j 时,这个点所在子树 ... 
- javascript 动态修改css样式方法汇总(四种方法)
		在很多情况下,都需要对网页上元素的样式进行动态的修改.在JavaScript中提供几种方式动态的修改样式,下面将介绍方法的使用.效果.以及缺陷. 1.使用obj.className来修改样式表的类名. ... 
- SSH深度历险(六) 深入浅出----- Spring事务配置的五种方式
		这对时间在学习SSH中Spring架构,Spring的事务配置做了详细总结,在此之间对Spring的事务配置只是停留在听说的阶段,总结一下,整体把控,通过这次的学习发觉Spring的事务配置只要把思路 ... 
- CSS3-border-radius的兼容写法大全
		<!DOCTYPE html><html lang="zh-cn"><head> <meta charset="utf-8&qu ... 
- CSS控制样式的三种方式优先级对比验证
		入职已经一个月了,自此后,就好久没有写过博客了,在此先跟关注我的博友们说声抱歉.今天,在公司的一个培训作业的驱动以及伟哥那句“再不写博客就开除你”的监督下,我终于重拾旧爱,再次登录博客园,继续与大家分 ... 
随机推荐
- bzoj 2049: [Sdoi]Cave 洞穴探测 (LCT)
			第一次写lct (这是一道lct裸题 这次没有可爱(划掉)的同学教我,虽然有模板,但是配合网上的讲解还是看不懂QAQ 然后做了几道题之后总算有些感觉辣 于是决定给自己挖个坑,近期写一个lct详解(不过 ... 
- 题解【Codeforces886B】Vlad and Cafes
			本题是模拟题. 我们可以用b数组记录每个数字在a数组中出现的最后位置,然后从0到2·10^5依次寻找最后一次出现最早的数(注意是0!),最后统计输出即可. AC代码: #include <bit ... 
- 初学Java时使用记事本开发出现的中文乱码问题
			如果是使用微软记事本,那就会麻烦一点,将后缀改为.txt,用记事本打开,左上方:文件→另存为→弹出的窗口的下方会出现使用的编码形式,将编码形式修改为ANSI编码,点击保存→确定替换即可,修改后将后缀改 ... 
- 红帽 Red Hat Linux相关产品iso镜像下载【百度云】【更新7.6】
			不为什么,就为了方便搜索,特把红帽EL 5.EL6.EL7 的各版本整理一下,共享出来.原文链接正式发布 7.6 :RedHat Enterprise Server 7.6 for x86_64:rh ... 
- python numpy中sum()时出现负值
			import numpy a=numpy.random.randint(1, 4095, (5000,5000)) a.sum() 结果为负值, 这是错误的,a.sum()的类型为 int32,如何做 ... 
- Python基础知识详解 从入门到精通(七)类与对象
			本篇主要是介绍python,内容可先看目录其他基础知识详解,欢迎查看本人的其他文章Python基础知识详解 从入门到精通(一)介绍Python基础知识详解 从入门到精通(二)基础Python基础知识详 ... 
- map-apply-applymap
			In [1]: import warnings import math import pandas as pd import numpy as np import matplotlib warning ... 
- PHP正则表达式常用例子
			"^[0-9]*[1-9][0-9]*$" //正整数"^((-\d+)|(0+))$" //非正整数(负整数 + 0)"^-[0-9]*[1-9][ ... 
- 安装CDH第三方依赖包
			安装CDH第三方依赖包: yum install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyr ... 
- Codeforces Round #598 (Div. 3) F. Equalizing Two Strings
			You are given two strings ss and tt both of length nn and both consisting of lowercase Latin letters ... 
