我建立了一个行为的小例子。基本上,我在左侧有一个带有可展开窗格的页面。当它展开时,Chrome 似乎无法更新 CSS。
在此示例中,您单击展开左侧面板的绿色矩形。通过 JQuery 将一个 css 类移至右侧面板。似乎在有某种布局操作之前不会应用 CSS 类。例如,如果您稍微调整页面大小,或者如果您打开开发人员工具并取消选中一些随机 CSS。当您执行该操作时,蓝色矩形的边缘会跳到它应该在的位置。
看起来它可能与一个类中的 !important 覆盖另一个类有关。
最初它有这两个类:
#main-content-right{
min-width:200px;
padding:0 15px 0 100px;
margin-bottom:10px;
z-index:1;
min-height:300px;
}
.main-content-collapse-right{
padding:0 150px 0 29px !important;
}
然后后者被删除。
如果您在我的 hack 函数中取消注释该行,则可以修复它。我基本上有两个问题。
1)这是浏览器本身的错误吗?2)有没有比仅仅切换一些随机css更好的解决方案?
编辑:看起来问题 1 的答案是肯定的:https ://bugs.webkit.org/show_bug.cgi?id=93876和简化演示:https://bug-93876-attachments.webkit.org/attachment。 cgi?id=158063