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 相关文章推荐
浏览器常用高宽的jquery插件
Feb 24 Javascript
js中settimeout方法加参数
Feb 28 Javascript
js获取微信版本号的方法
May 12 Javascript
jquery取消事件冒泡的三种方法(推荐)
May 28 Javascript
使用HTML5+Boostrap打造简单的音乐播放器
Aug 05 Javascript
jQuery如何封装输入框插件
Aug 19 Javascript
React Js 微信禁止复制链接分享禁止隐藏右上角菜单功能
May 26 Javascript
Iscrool下拉刷新功能实现方法(推荐)
Jun 26 Javascript
Validform验证时可以为空否则按照指定格式验证
Oct 20 Javascript
jQuery实现带右侧索引功能的通讯录示例【附源码下载】
Apr 17 jQuery
JavaScript实现滑动门效果
Jan 18 Javascript
微信小程序吸底区域适配iPhoneX的实现
Apr 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
分享一个php 的异常处理程序
2014/06/22 PHP
PHP编程实现计算抽奖概率算法完整实例
2017/08/09 PHP
PHP将整数数字转换为罗马数字实例分享
2019/03/17 PHP
如何在Laravel之外使用illuminate组件详解
2020/09/20 PHP
jQuery点击后一组图片左右滑动的实现代码
2012/08/16 Javascript
JavaScript通过正则表达式实现表单验证电话号码
2014/03/07 Javascript
分享一则javascript 调试技巧
2015/01/02 Javascript
js兼容火狐显示上传图片预览效果的方法
2015/05/21 Javascript
JQuery控制Radio选中方法分析
2015/05/29 Javascript
易操作的jQuery表单提示插件
2015/12/01 Javascript
深入剖析JavaScript面向对象编程
2016/07/12 Javascript
Nodejs进阶:如何将图片转成datauri嵌入到网页中去实例
2016/11/21 NodeJs
客户端(vue框架)与服务器(koa框架)通信及服务器跨域配置详解
2017/08/26 Javascript
node vue项目开发之前后端分离实战记录
2017/12/13 Javascript
原生JS进行前后端同构
2018/04/22 Javascript
vue的传参方式汇总和router使用技巧
2018/05/22 Javascript
Vuex 使用 v-model 配合 state的方法
2018/11/13 Javascript
解决layer图标icon不加载的问题
2019/09/04 Javascript
JS co 函数库的含义和用法实例总结
2020/04/08 Javascript
python实现根据主机名字获得所有ip地址的方法
2015/06/28 Python
Python基于identicon库创建类似Github上用的头像功能
2017/09/25 Python
Python根据欧拉角求旋转矩阵的实例
2019/01/28 Python
django一对多模型以及如何在前端实现详解
2019/07/24 Python
Python自动化测试笔试面试题精选
2020/03/12 Python
Django实现将views.py中的数据传递到前端html页面,并展示
2020/03/16 Python
python爬虫请求头的使用
2020/12/01 Python
指针和引用有什么区别
2013/01/13 面试题
函数指针的定义是什么
2016/08/14 面试题
幼儿园师德师风学习材料
2014/05/29 职场文书
高中课前三分钟演讲稿
2014/09/13 职场文书
2015年父亲节寄语
2015/03/23 职场文书
2015暑假实习报告范文
2015/07/13 职场文书
2016年春节慰问信息大全
2015/11/30 职场文书
求职信:会计求职的写作技巧
2019/04/24 职场文书
在校大学生才艺比赛策划书怎么写?
2019/08/26 职场文书
golang http使用踩过的坑与填坑指南
2021/04/27 Golang