Javascript获取CSS伪元素属性的实现代码
2014-09-28 23:38
676 查看
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获取CSS伪元素属性的实现代码
- Javascript获取CSS伪元素属性的实现代码
- javascript 获取所有id中包含某关键字的控件的实现代码
- JavaScript 选中文字并响应获取的实现代码
- javascript获取xml节点的最大值(实现代码)
- Javascript实现获取窗口的大小和位置代码分享
- javascript获取函数名称、函数参数、对象属性名称的代码实例
- JavaScript学习笔记之获取当前目录的实现代码
- 9行javascript代码获取QQ群成员具体实现
- javascript获取xml节点的最大值(实现代码)
- JavaScript中获取未知对象属性的代码
- jQuery与javascript对照学习 获取父子前后元素 实现代码
- jquery 获取自定义属性(attr和prop)的实现代码
- 使用JavaScript获取CSS伪元素属性
- javascript获取ckeditor编辑器的值(实现代码)
- 使用javascript获取flash加载的百分比的实现代码
- jquery(javascript)自动序列编号和属性编号实现代码
- javascript获取ckeditor编辑器的值(实现代码)
- javascript获取函数名称、函数参数、对象属性名称的代码实例
- JavaScript调用ajax获取文本文件内容实现代码