在iOS和OSX上的Safari 7中,我有一些文本水平溢出的元素。这些元素的文本由Angular Translate异步填充。看起来好像Safari没有意识到改变的元素的内容没有重新渲染它;而是让子元素水平溢出。
答案 0 :(得分:1)
这似乎是一个重绘/重绘问题,已知在Safari布局中发生。
您可以尝试使用几行JavaScript来解决此问题,您希望在加载内容后立即启动它:
var sel = document.querySelector('#myElement')
sel.style.display = 'run-in';
setTimeout(function () { sel.style.display = 'block'; }, 0);
那应该将框重绘为其内容的边界。
将'#myElement'
替换为ID或类CSS选择器以获取按钮。磨合(与“无”#)设置相反,可防止元素闪烁。将显示重新设置为块的零毫秒超时是实际导致重新绘制的原因。
希望这有帮助。