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 相关文章推荐
JavaScript OOP面向对象介绍
Dec 02 Javascript
也说JavaScript中String类的replace函数
Sep 22 Javascript
jQuery扁平化风格下拉框美化插件FancySelect使用指南
Feb 10 Javascript
javascript中的正则表达式使用详解
Aug 30 Javascript
JS实现单击输入框弹出选择框效果完整实例
Dec 14 Javascript
一道关于JavaScript变量作用域的面试题
Mar 08 Javascript
EasyUI学习之Combobox下拉列表(1)
Dec 29 Javascript
JavaScript原生数组Array常用方法
Apr 06 Javascript
bootstrap栅格系统示例代码分享
May 22 Javascript
详解Angular CLI + Electron 开发环境搭建
Jul 20 Javascript
AngularJS 的$timeout服务示例代码
Sep 21 Javascript
JavaScript中的this妙用实例分析
May 09 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
解析如何修改phpmyadmin中的默认登陆超时时间
2013/06/25 PHP
php自定义函数实现汉字转换utf8编码的方法
2016/09/29 PHP
php简单实现单态设计模式的方法分析
2017/07/28 PHP
PHP排序算法之冒泡排序(Bubble Sort)实现方法详解
2018/04/20 PHP
js版本A*寻路算法
2006/12/22 Javascript
javascript function调用时的参数检测常用办法
2010/02/26 Javascript
DOM和XMLHttpRequest对象的属性和方法整理
2012/01/04 Javascript
使用简洁的jQuery方法实现隔行换色功能
2014/01/02 Javascript
兼容主流浏览器的iframe自适应高度js脚本
2014/01/10 Javascript
jsp网页搜索结果中实现选中一行使其高亮
2014/02/17 Javascript
javascript继承的六大模式小结
2015/04/13 Javascript
ECMAScript6中Map/WeakMap详解
2015/06/12 Javascript
js正则表达式验证邮件地址
2015/11/12 Javascript
javascript实现2016新年版日历
2016/01/25 Javascript
小程序实现搜索框
2020/06/19 Javascript
[02:08]2018年度CS GO枪械皮肤设计大赛优秀作者-完美盛典
2018/12/16 DOTA
python聊天程序实例代码分享
2013/11/18 Python
tornado框架blog模块分析与使用
2013/11/21 Python
python遍历文件夹并删除特定格式文件的示例
2014/03/05 Python
Python Web框架之Django框架Model基础详解
2019/08/16 Python
Python产生一个数值范围内的不重复的随机数的实现方法
2019/08/21 Python
css3 pointer-events 介绍详解
2017/09/18 HTML / CSS
HTML5 Canvas的常用线条属性值总结
2016/03/17 HTML / CSS
匈牙利最大的健身制造商和销售商:inSPORTline
2018/10/30 全球购物
卡骆驰英国官网:Crocs英国
2019/08/22 全球购物
static函数与普通函数有什么区别
2015/12/25 面试题
工商管理专业实习生自我鉴定
2013/09/29 职场文书
优秀党员转正的自我评价
2013/10/06 职场文书
女大学生自我鉴定
2013/12/09 职场文书
医学生个人求职信范文
2014/02/07 职场文书
yy婚礼主持词
2014/03/14 职场文书
自愿离婚协议书范本
2015/01/26 职场文书
家长对孩子的寒假评语
2015/10/09 职场文书
2016年师德先进个人事迹材料
2016/02/29 职场文书
比较几种Redis集群方案
2021/06/21 Redis
Python 统计序列中元素的出现频度
2022/04/26 Python