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 相关文章推荐
学习ExtJS(二) Button常用方法
Oct 07 Javascript
利用google提供的API(JavaScript接口)获取网站访问者IP地理位置的代码详解
Jul 24 Javascript
JQuery获取各种宽度、高度(format函数)实例
Mar 04 Javascript
jquery 合并内容相同的单元格(示例代码)
Dec 13 Javascript
Javascript的表单与验证-非空验证
Mar 18 Javascript
JavaScript中的boolean布尔值使用学习及相关技巧讲解
May 26 Javascript
利用Angular+Angular-Ui实现分页(代码加简单)
Mar 10 Javascript
springMVC + easyui + $.ajaxFileUpload实现文件上传注意事项
Apr 23 Javascript
Angular HMR(热模块替换)功能实现方法
Apr 04 Javascript
vue页面切换过渡transition效果
Oct 08 Javascript
vue实现移动端轻量日期组件不依赖第三方库的方法
Apr 28 Javascript
微信小程序实现圆形进度条动画
Nov 18 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中exec函数和shell_exec函数的区别
2014/08/20 PHP
关于URL最大长度限制的相关资料查证
2014/12/23 PHP
实例讲解PHP设计模式编程中的简单工厂模式
2016/02/29 PHP
thinkphp5.1框架实现格式化mysql时间戳为日期的方式小结
2019/10/10 PHP
JavaScript 类的定义和引用 JavaScript高级培训 自定义对象
2010/04/27 Javascript
JQuery扩展插件Validate 2通过参数设置验证规则
2011/09/05 Javascript
jsonp原理及使用
2013/10/28 Javascript
重写document.write实现无阻塞加载js广告(补充)
2014/12/12 Javascript
js实现的四级左侧网站分类菜单实例
2015/05/06 Javascript
jQuery CSS3自定义美化Checkbox实现代码
2016/05/12 Javascript
JS DOMReady事件的六种实现方法总结
2016/11/23 Javascript
JS函数内部属性之arguments和this实例解析
2018/10/07 Javascript
el-select 下拉框多选实现全选的实现
2019/08/02 Javascript
关于Layui Table隐藏列问题
2019/09/16 Javascript
微信小程序组件生命周期的踩坑记录
2021/03/03 Javascript
Python Pandas找到缺失值的位置方法
2018/04/12 Python
python在文本开头插入一行的实例
2018/05/02 Python
如何安装2019Pycharm最新版本(详细教程)
2019/09/26 Python
Python如何实现大型数组运算(使用NumPy)
2020/07/24 Python
Html5百叶窗效果的示例代码
2017/12/11 HTML / CSS
加拿大领先的牛仔零售商:Bluenotes
2018/01/22 全球购物
官方授权图形T恤和服装:Fifth Sun
2019/06/12 全球购物
澳大利亚有机化妆品网上商店:The Well Store
2020/02/20 全球购物
梅西百货官网:Macy’s
2020/08/04 全球购物
什么是java序列化,如何实现java序列化
2012/11/14 面试题
物理系毕业生自荐信
2013/11/01 职场文书
网络专业学生个人的自我评价
2013/12/16 职场文书
自动化专业职业生涯规划书范文
2014/01/16 职场文书
简历自我评价模版
2014/01/31 职场文书
乡镇办公室工作决心书
2014/03/11 职场文书
创先争优个人承诺书
2014/08/30 职场文书
全陪导游词开场白
2015/05/29 职场文书
赢在执行观后感
2015/06/16 职场文书
Nginx 负载均衡是什么以及该如何配置
2021/03/31 Servers
80行代码写一个Webpack插件并发布到npm
2021/05/24 Javascript
聊聊redis-dump工具安装问题
2022/01/18 Redis