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入门教程(6) Window窗口对象
Jan 31 Javascript
给Flash加一个超链接(推荐使用透明层)兼容主流浏览器
Jun 09 Javascript
JavaScript中的bold()方法使用详解
Jun 08 Javascript
易被忽视的js事件问题总结
May 14 Javascript
html+js+highcharts绘制圆饼图表的简单实例
Aug 04 Javascript
js HTML5 Canvas绘制转盘抽奖
Sep 13 Javascript
微信小程序 开发工具快捷键整理
Oct 31 Javascript
BetterScroll 在移动端滚动场景的应用
Sep 18 Javascript
JS 实现微信扫一扫功能
Sep 14 Javascript
微信小程序实现简单评论功能
Nov 28 Javascript
Vue中ref和$refs的介绍以及使用方法示例
Jan 11 Vue.js
关于antd tree 和父子组件之间的传值问题(react 总结)
Jun 02 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 empty函数 使用说明
2009/08/10 PHP
window+nginx+php环境配置 附配置搭配说明
2010/12/29 PHP
wordpress安装过程中遇到中文乱码的处理方法
2015/04/21 PHP
Yii框架连表查询操作示例
2019/09/06 PHP
PHP 图片处理
2020/09/16 PHP
THINKPHP-Apache服务器中使用Alias虚拟目录URL重写 隐藏index.php
2021/03/09 PHP
js CSS操作方法集合
2008/10/31 Javascript
Javascript insertAfter() 实现函数代码
2011/10/12 Javascript
jquery自定义类似$.ajax()的方法实现代码
2013/08/13 Javascript
用循环或if语句从json中取数据示例
2014/08/18 Javascript
jquery实现textarea输入框限制字数的方法
2015/01/15 Javascript
高性能JavaScript 重排与重绘(2)
2015/08/11 Javascript
基于Jquery实现焦点图淡出淡入效果
2015/11/30 Javascript
bootstrap输入框组代码分享
2016/06/07 Javascript
利用JavaScript判断浏览器类型及版本
2016/08/23 Javascript
微信小程序技巧之show内容展示,上传文件编码问题
2017/01/23 Javascript
Bootstrap面板学习使用
2017/02/09 Javascript
Nodejs搭建wss服务器教程
2017/05/24 NodeJs
Vue实现自定义下拉菜单功能
2018/07/16 Javascript
微信小程序 函数防抖 解决重复点击消耗性能问题实现代码
2019/09/12 Javascript
解决antd 表单设置默认值initialValue后验证失效的问题
2020/11/02 Javascript
[02:57]DOTA2英雄基础教程 风行者
2014/01/16 DOTA
matplotlib设置legend图例代码示例
2017/12/19 Python
Python3.x爬虫下载网页图片的实例讲解
2018/05/22 Python
对python tkinter窗口弹出置顶的方法详解
2019/06/14 Python
python 实现在一张图中绘制一个小的子图方法
2019/07/07 Python
500行代码使用python写个微信小游戏飞机大战游戏
2019/10/16 Python
浅谈Python协程
2020/06/17 Python
详解Python中的路径问题
2020/09/02 Python
详解tensorflow之过拟合问题实战
2020/11/01 Python
英国时尚高尔夫服装购物网站:Trendy Golf
2020/01/10 全球购物
美术专业学生个人自我评价
2013/09/19 职场文书
村官工作鉴定评语
2014/01/27 职场文书
岗位职责范本大全
2015/02/26 职场文书
撤诉申请书法院范本
2015/05/18 职场文书
2016高中社会实践心得体会范文
2016/01/14 职场文书