0

我有这个样式:

section.tipos .content > div:before {
    background: none repeat scroll 0 0 #DDDDDD;
    content: " ";
    height: 10px;
    left: 32%;
    position: absolute;
    top: -10px;
    width: 10px;
}

哪个工作正常,

但是当某些事件发生时,我想将 left 属性更改为不同的 %

我知道这可以(当然)使用类名或样式来实现。但是我的老板不太喜欢类名,除非它们是 100% 需要的。

问题是:我可以从 javascript 更改伪选择器的 css 吗?像这样的东西(但有效)

$('section.tipos .content > div:before').css({ 'left' : 50+index*17});
4

2 回答 2

1

不,你不能那样做。和伪元素对您的 Javascript 代码不可用:before:after

您可以期望的最佳解决方法是使用您的 Javascript 更改主元素的类,并:before根据其具有的类为伪元素设置单独的 CSS 代码。

然后你可以有这样的 CSS 代码:

section.tipos .content > div.newClass:before {
    ....
}

但是,我注意到您希望将宽度设置为计算值;使用上述技术可能会很棘手。CSScalc()可能会有所帮助,具体取决于index所使用的内容以及您需要的浏览器支持级别。

于 2013-06-14T12:36:27.057 回答
0

尝试将 '%' 附加到 css 样式值:

$('section.tipos .content > div:before').css({ 'left' : 50+index*17 + '%'});
于 2013-06-14T12:35:50.223 回答