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实现的基于金山词霸网络翻译的代码
Jan 15 Javascript
JQuery 常用操作代码
Mar 14 Javascript
JQUERY 实现窗口滚动搜索框停靠效果(类似滚动停靠)
Mar 27 Javascript
浅析Javascript中bind()方法的使用与实现
Apr 29 Javascript
基于Jquery插件Uploadify实现实时显示进度条上传图片
Mar 26 Javascript
js删除数组元素、清空数组的简单方法(必看)
Jul 27 Javascript
深入理解react-router@4.0 使用和源码解析
May 23 Javascript
vue中实现移动端的scroll滚动方法
Mar 03 Javascript
vue-cli开发环境实现跨域请求的方法
Apr 07 Javascript
详解vue2.0 资源文件assets和static的区别
Nov 27 Javascript
vue3.0搭配.net core实现文件上传组件
Oct 29 Javascript
JS画布动态实现黑客帝国背景效果
Nov 08 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输出图像imagegif、imagejpeg与imagepng函数用法分析
2016/11/14 PHP
input按钮的事件处理大全
2010/12/10 Javascript
引入JS文件IE6报语法错误或缺少对象问题的解决方法
2014/01/09 Javascript
jQuery中change事件用法实例
2014/12/26 Javascript
JavaScript中Date对象的常用方法示例
2015/10/24 Javascript
javascript实现无缝上下滚动特效
2015/12/16 Javascript
javascript精确统计网站访问量实例代码
2015/12/19 Javascript
vue.js将unix时间戳转换为自定义时间格式
2017/01/03 Javascript
JavaScript中for循环的几种写法与效率总结
2017/02/03 Javascript
jquery PrintArea 实现票据的套打功能(代码)
2017/03/17 Javascript
Angualrjs和bootstrap相结合实现数据表格table
2017/03/30 Javascript
ES6新特性五:Set与Map的数据结构实例分析
2017/04/21 Javascript
Node.js中的http请求客户端示例(request client)
2017/05/04 Javascript
JavaScript之事件委托实例(附原生js和jQuery代码)
2017/07/22 jQuery
基于Bootstrap的标签页组件及bootstrap-tab使用说明
2017/07/25 Javascript
vue2.0.js的多级联动选择器实现方法
2018/02/09 Javascript
详解微信小程序-获取用户session_key,openid,unionid - 后端为nodejs
2019/04/29 NodeJs
基于vue、react实现倒计时效果
2019/08/26 Javascript
微信小程序实现聊天室
2020/08/21 Javascript
Python爬取网页中的图片(搜狗图片)详解
2017/03/23 Python
Python类的绑定方法和非绑定方法实例解析
2020/03/04 Python
pycharm激活方法到2099年(激活流程)
2020/09/22 Python
解决import tensorflow导致jupyter内核死亡的问题
2021/02/06 Python
北美三大旅游网站之一:Travelocity
2017/08/12 全球购物
Lou & Grey美国官网:主打舒适性面料服饰
2017/12/21 全球购物
英国在线定做百叶窗网站:Make My Blinds
2020/08/17 全球购物
init进程的作用
2012/04/12 面试题
写好自荐信的技巧
2013/11/08 职场文书
行政助理岗位职责
2013/11/10 职场文书
主持人演讲稿范文
2013/12/28 职场文书
军校大学生个人的自我评价
2014/02/17 职场文书
理工大学毕业生自荐信范文
2014/02/22 职场文书
人力资源管理毕业求职信
2014/08/05 职场文书
2016年优秀少先队员事迹材料
2016/02/26 职场文书
2019餐饮行业创业计划书!
2019/06/27 职场文书
redis中lua脚本使用教程
2021/11/01 Redis