![](/img/trans.png)
[英]How would I detect CSS Transition support on :before pseudo-elements with javascript?
[英]How can I convince Firefox to redraw CSS Pseudo-elements?
动态更改类时,让Firefox更新网页时出现问题。
我正在使用HTML table
元素。 当用户单击表标题中的单元格时,我的脚本在sorted_asc
和sorted_des
之间来回切换类。 我有伪元素,它根据当前单元格的类别添加一个箭头标志符号(向上或向下)。
.thead .tr .sorted_asc .cell:after {
content: ' \25B2';
}
问题是,当您第二次单击单元格标题时,页面不会更新箭头...直到用户将鼠标从元素上移开。 我认为这是一个错误,因为它可以在Safari中正常工作,并且我在CSS或其他可能不会造成干扰的条目中看不到任何:hover
标记。
任何人以前都看过此书,或者知道如何解决此问题?
这是2014年,本页上的拟议解决方案似乎都无效。 我发现了另一种方法:将元素与DOM分离,然后将其附加回原处。
有点俗气,但是由于无论如何您都在使用javascript,因此请在更改className之后尝试执行以下操作:
document.body.style.display = 'none';
document.body.style.display = 'block';
这将重新渲染布局,并且通常可以解决此类错误。 并非总是如此。
您是否可以使用不同的CSS来完成相同的事情而无需依赖:after伪选择器? 您也许可以简单地定义一个背景图像,然后根据需要进行对齐(我想您需要右侧的箭头)。
例如:
.thead .tr .sorted_asc .sorted_asc {
background: url(images/down_arrow.png) no-repeat right;
}
.thead .tr .sorted_asc .sorted_des {
background: url(images/up_arrow.png) no-repeat right;
}
我只建议这样做,因为我认为没有特定的原因需要使用:after伪类。 如果您确实需要使用它,请进行更新。
该错误仍可以在Firefox 58中触发。幸运的是,这种不透明技巧仍然有效。 只要确保正确的时间。 您可能需要在不透明度更改之间设置超时。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.