Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ie8更新继承的颜色:基于父元素的内容之前';班_Javascript_Jquery_Internet Explorer 8_Pseudo Element - Fatal编程技术网

Javascript ie8更新继承的颜色:基于父元素的内容之前';班

Javascript ie8更新继承的颜色:基于父元素的内容之前';班,javascript,jquery,internet-explorer-8,pseudo-element,Javascript,Jquery,Internet Explorer 8,Pseudo Element,我对任何能帮助我解决ie8中字体可怕问题的人的无限崇拜和钦佩。是的,我知道ie8不好玩,但我需要让它工作,因为…嗯,因为。 这个问题与ie8拒绝更新:before伪元素有关,前提是内容:保持不变。这使得当元素的父元素通过jquery或javascript接收到css类更新(如“selected”)时,很难控制字体颜色。强制重新绘制伪元素的优雅方式是什么:在内容之前 <style> .items div {color:red;} .items dig.selected {color:g

我对任何能帮助我解决ie8中字体可怕问题的人的无限崇拜和钦佩。是的,我知道ie8不好玩,但我需要让它工作,因为…嗯,因为。

这个问题与ie8拒绝更新:before伪元素有关,前提是内容:保持不变。这使得当元素的父元素通过jquery或javascript接收到css类更新(如“selected”)时,很难控制字体颜色。强制重新绘制伪元素的优雅方式是什么:在内容之前

<style>
.items div {color:red;}
.items dig.selected {color:green;}
</style>

$('.toggle').on('click', function(){$('.items').toggleClass('selected');});

<div class="items">
<div class="selected">item 1<i class="icon-arrow-left"></div>
<div>item 2<i class="icon-arrow-left"></i></div>
<a id="toggle">Toggle</a>
</div>

.items div{color:red;}
.items.selected{color:green;}
$('.toggle').on('click',function(){$('.items').toggleClass('selected');});
项目1
项目2


在ie>=9和7以及ie8兼容模式下(有不同的问题)都能正常工作,在Chrome、safari和FF中也能正常工作

您是否尝试了
颜色:继承
:之前的
规则?如果这不起作用,我也会尝试为
创建一个单独的规则。选择的I:before
使用所需的颜色。@inhan-我找不到比您建议的更优雅的规则了。最后,我不得不创建一个仅限ie8的样式表来重新定义。选择I:如果我使内容完全相同,但一旦我将内容从“\x047”更改为“\x407”,则该样式表将变得异常。现在它可以工作了,但是如果我添加图标或者创建一个子集,或者想要添加额外的键类,比如.on或者.off,我就不得不担心还有一个css文件。我觉得对于我的场景来说,最好的解决方案是对浏览器进行调整,而不是保持额外的样式。为了确保我将使用
{display:block;float:[left | right]}
选择器,而不是
(:):before
(:):after
选择器。但是看到它是
标记,我想你正在使用,所以这可能不是最简单的解决方案(尽管它更严格)。@inhan-我没有在这个项目中使用Bootstrap,我只是尽可能地离开。但是现在我正在为ie8编写更多的样式表,我可能会接受你的建议,回去使用更传统的元素。。。