css js html伪元素点击,Javascript获取CSS伪元素属性的实现代码

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 属性值的方法。

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;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值