Javascript获取CSS伪元素属性的实现代码


Posted in Javascript onSeptember 28, 2014

CSS伪元素非常强大,它经常被用来创建CSS三角形提示,使用CSS伪元素可以实现一些简单的效果但又不需要增加额外的HTML标签。有一点就是Javascript无法获取到这些CSS属性值,但现在有一种方法可以获取到:

看看下面的CSS代码:

.element:before {
  content: 'NEW';
  color: rgb(255, 0, 0);
}.element:before {
	content: 'NEW';
	color: rgb(255, 0, 0);
}

为了获取到.element:before的颜色属性,你可以使用下面的代码:

var color = window.getComputedStyle(
  document.querySelector('.element'), ':before'
).getPropertyValue('color')var color = window.getComputedStyle(
	document.querySelector('.element'), ':before'
).getPropertyValue('color')

把伪元素作为第二个参数传到window.getComputedStyle方法中就可以获取到它的CSS属性了。把这段代码放到你的工具函数集里面去吧。随着伪元素被越来越多的浏览器支持,这个方法会很有用的。

译者注:window.getComputedStyle方法在IE9以下的浏览器不支持,getPropertyValue必须配合getComputedStyle方法一起使用。IE支持CurrentStyle属性,但还是无法获取伪元素的属性。

准确获取指定元素 CSS 属性值的方法。

<script type="text/javascript"> 
function getStyle( elem, name ) 
{ 
  //如果该属性存在于style[]中,则它最近被设置过(且就是当前的) 
  if (elem.style[name]) 
  { 
    return elem.style[name]; 
  } 
  //否则,尝试IE的方式 
  else if (elem.currentStyle) 
  { 
    return elem.currentStyle[name]; 
  } 
  //或者W3C的方法,如果存在的话 
  else if (document.defaultView && document.defaultView.getComputedStyle) 
  { 
    //它使用传统的"text-Align"风格的规则书写方式,而不是"textAlign" 
    name = name.replace(/([A-Z])/g,"-$1"); 
    name = name.toLowerCase(); 
    //获取style对象并取得属性的值(如果存在的话) 
    var s = document.defaultView.getComputedStyle(elem,""); 
    return s && s.getPropertyValue(name); 
  //否则,就是在使用其它的浏览器 
  } 
  else 
  { 
    return null; 
  } 
} 
</script>
Javascript 相关文章推荐
ko knockoutjs动态属性绑定技巧应用
Nov 14 Javascript
JavaScript获取多个数组的交集简单实例
Nov 11 Javascript
js中小数转换整数的方法
Jan 26 Javascript
javascript中var的重要性分析
Feb 11 Javascript
jQuery插件开发精品教程让你的jQuery提升一个台阶
Jan 27 Javascript
jQuery EasyUI API 中文帮助文档和扩展实例
Aug 01 Javascript
详解小程序原生使用ES7 async/await语法
Aug 06 Javascript
vue-cli V3.0版本的使用详解
Oct 24 Javascript
微信网页登录逻辑与实现方法
Apr 29 Javascript
js实现数字滚动特效
Dec 16 Javascript
Vue elementui字体图标显示问题解决方案
Aug 18 Javascript
详解JavaScript中的链式调用
Nov 27 Javascript
js获取元素相对窗口位置的实现代码
Sep 28 #Javascript
Internet Explorer 11 浏览器介绍:别叫我IE
Sep 28 #Javascript
浏览器缩放检测的js代码
Sep 28 #Javascript
排序算法的javascript实现与讲解(99js手记)
Sep 28 #Javascript
Javascript中封装window.open解决不兼容问题
Sep 28 #Javascript
jQuery固定浮动侧边栏实现思路及代码
Sep 28 #Javascript
js文件包含的几种方式介绍
Sep 28 #Javascript
You might like
一个颜色轮换的简单例子
2006/10/09 PHP
PHP开发中四种查询返回结果分析
2011/01/02 PHP
浅析51个PHP处理字符串的函数
2013/08/02 PHP
PHP常用的排序和查找算法
2015/08/06 PHP
关于扩展 Laravel 默认 Session 中间件导致的 Session 写入失效问题分析
2016/01/08 PHP
Smarty模板变量调节器用法分析
2016/05/23 PHP
php结合md5的加密解密算法实例
2016/09/30 PHP
PHP jpgraph库的配置及生成统计图表:折线图、柱状图、饼状图
2017/05/15 PHP
jQuery实现的简单折叠菜单(折叠面板)效果代码
2015/09/16 Javascript
JavaScript字符串删除重复字符的方法
2015/12/25 Javascript
实例代码详解javascript实现窗口抖动及qq窗口抖动
2016/01/04 Javascript
js+html5实现canvas绘制椭圆形图案的方法
2016/05/21 Javascript
JavaScript函数节流和函数防抖之间的区别
2017/02/15 Javascript
Express结合Webpack的全栈自动刷新
2019/05/23 Javascript
echarts大屏字体自适应的方法步骤
2019/07/12 Javascript
webpack 最佳配置指北(推荐)
2020/01/07 Javascript
vue iview 隐藏Table组件里的某一列操作
2020/11/13 Javascript
[01:08]2014DOTA2展望TI 剑指西雅图LGD战队专访
2014/06/30 DOTA
[03:02]安得倚天剑,跨海斩长鲸——中国军团出征DOTA2国际邀请赛
2018/08/14 DOTA
Python获取网页上图片下载地址的方法
2015/03/11 Python
解决python删除文件的权限错误问题
2018/04/24 Python
python自动发微信监控报警
2019/09/06 Python
大家都说好用的Python命令行库click的使用
2019/11/07 Python
pygame实现烟雨蒙蒙下彩虹雨
2019/11/11 Python
简单了解python filter、map、reduce的区别
2020/01/14 Python
CSS3系列之3D制作方法案例
2017/08/14 HTML / CSS
html5 兼容IE6结构的实现代码
2012/05/14 HTML / CSS
RetroStage德国:复古服装
2019/02/03 全球购物
Raffaello Network德国:意大利拉斐尔时尚购物网
2019/05/01 全球购物
SQL面试题
2013/12/09 面试题
大学生实习感言
2014/01/16 职场文书
新学期开学标语
2014/06/30 职场文书
工会2014法制宣传日活动总结
2014/11/01 职场文书
幼儿园六一主持词
2015/06/30 职场文书
四年级语文教学反思
2016/03/03 职场文书
Python实现批量将文件复制到新的目录中再修改名称
2022/04/12 Python