动态更改元素li的颜色不会更改项目符号的颜色

在Chrome(版本45.0.2454.101 m)中,如果我将一个类添加到列表元素以更改其颜色,则仅在重新绘制窗口(resize)时更新项目符号点颜色

$("#a").click(function() { $("#a").addClass('blue'); }); 
 ul li { color: red; list-style-type: disc; margin-left: 2em; } .blue { color: blue; } 
  
  • a
  • b
  • c

Chrome中的错误是否可以通过代码解决? (或者它是一个bug?)

可能这是一个错误,但我不会依赖标准的光盘元素。

您可以在伪元素之前使用CSS ::而不是。 它更易于配置,完全由您控制。

 $("#a").click(function() { $("#a").addClass('blue'); }); 
 ul li { color: red; list-style-type: none; margin-left: 2em; } ul li::before { content: "•"; } .blue { color: blue; } 
  
  • a
  • b
  • c

您可以使用假CSS动画强制重绘,直到修复此错误。

 $("#a").click(function() { $("#a").addClass('blue'); }); 
 ul li { color: red; list-style-type: disc; margin-left: 2em; -webkit-animation:1ms foo infinite; /* using prefix for webkit only */ } .blue { color: blue; } @-webkit-keyframes foo { /* using prefix for webkit only */ from { zoom: 0.99999; } to { zoom: 1; } } 
  
  • a
  • b
  • c