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 相关文章推荐
浏览器窗口加载和大小改变事件示例
Feb 27 Javascript
JavaScript获取table中某一列的值的方法
May 06 Javascript
js实现Select列表各项上移和下移的方法
Aug 14 Javascript
javascript创建含数字字母的随机字符串方法总结
Aug 01 Javascript
js实现滑动到页面底部自动加载更多功能
Feb 15 Javascript
JS中使用正则表达式g模式和非g模式的区别
Apr 01 Javascript
JS实现的按钮点击颜色切换功能示例
Oct 19 Javascript
安装Node.js并启动本地服务的操作教程
May 12 Javascript
最简单的JS实现json转csv的方法
Jan 10 Javascript
vue项目部署到nginx/tomcat服务器的实现
Aug 26 Javascript
写一个Vue loading 插件
Nov 09 Javascript
React列表栏及购物车组件使用详解
Jun 28 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
基于PHP导出Excel的小经验 完美解决乱码问题
2013/06/10 PHP
深入理解PHP中的global
2014/08/19 PHP
PHP 使用memcached简单示例分享
2015/03/05 PHP
prototype.js的Ajax对象
2006/09/23 Javascript
JavaScript arguments 多参传值函数
2010/10/24 Javascript
读jQuery之十一 添加事件核心方法
2011/07/31 Javascript
jQuery实现点击标题输入详细信息
2013/04/16 Javascript
javascript实现的平方米、亩、公顷单位换算小程序
2014/08/11 Javascript
javascript中关于&amp;&amp; 和 || 表达式的小技巧分享
2015/04/10 Javascript
js实现跨域的多种方法
2015/12/25 Javascript
JS实现用特殊符号替换字符串的中间部分区域的实例代码
2018/07/24 Javascript
JS实现倒序输出的几种常用方法示例
2019/04/13 Javascript
微信小程序解析富文本过程详解
2019/07/13 Javascript
解决基于 keep-alive 的后台多级路由缓存问题
2020/12/23 Javascript
[01:41]DOTA2超级联赛专访YYF 称一辈子难忘TI2
2013/05/28 DOTA
Python 字典(Dictionary)操作详解
2014/03/11 Python
Python中类的继承代码实例
2014/10/28 Python
python实现定时播放mp3
2015/03/29 Python
Python实现XML文件解析的示例代码
2018/02/05 Python
Python面向对象程序设计OOP入门教程【类,实例,继承,重载等】
2019/01/05 Python
对python中的os.getpid()和os.fork()函数详解
2019/08/08 Python
python批量将excel内容进行翻译写入功能
2019/10/10 Python
wxPython绘图模块wxPyPlot实现数据可视化
2019/11/19 Python
Win10下安装并使用tensorflow-gpu1.8.0+python3.6全过程分析(显卡MX250+CUDA9.0+cudnn)
2020/02/17 Python
Python3合并两个有序数组代码实例
2020/08/11 Python
Django使用django-simple-captcha做验证码的实现示例
2021/01/07 Python
Amaze UI 文件选择域的示例代码
2020/08/26 HTML / CSS
韩国知名的家庭购物网站:CJmall
2016/08/01 全球购物
毕业生的自我评价范文
2013/12/31 职场文书
材料专业毕业生求职信
2014/02/26 职场文书
人事专员岗位说明书
2014/07/29 职场文书
违纪学生保证书
2015/02/27 职场文书
2016元旦文艺汇演主持词
2015/07/06 职场文书
办公室规章制度范本
2015/08/04 职场文书
2016年优秀团员事迹材料
2016/02/25 职场文书
2016年小学推普宣传周活动总结
2016/04/06 职场文书