iOS:具有-webkit-backface-visibility的多个div:缩放时隐藏崩溃浏览器
当我在iPad 4浏览器上查看以下HTML页面(Safari或Chrome无关紧要)时,浏览器在缩放时会崩溃(无论是双击缩放还是双指缩放)。 该页面包含40个简单的div(为了简洁,由javascript插入)具有属性-webkit-backface-visibility:hidden。
<!doctype html> <html> <head> <style> .front { -webkit-backface-visibility: hidden; position: absolute; border: 1px solid black; width: 800px; height: 800px; } </style> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> </head> <body id="outer"> <script> $(function() { for (var i = 0; i < 40; i++) { $(document.createElement('div')) .css({top: i*10, left: i*10}) .addClass("front").appendTo($("#outer")); } }) </script> </body> </html>
iPhone和老一代的iPad也可能出现同样的问题。 这是一个奇怪和烦人的错误; 当我停用-webkit-backface-visibility:隐藏内部元素样式时,不会发生这种情况。
你可能会问:为什么我不简单地删除-webkit-backface-visibility:隐藏的样式,因为它在这个页面上没有任何区别? 那么,这是一个最小的反例,我需要在实际的,更复杂的页面上。
看起来,移动Safari浏览器有像css3属性转换,转换或背面visiblity麻烦,有时运行内存不足。
看到:
- iOS上的移动Safari在大页面上崩溃
- http://www.dimshik.com/ios-7-runs-out-of-memory-when-using-webkit-transform/
- CSS3转换(供应商前缀)立即崩溃Safari
- iOS Safari + CSS calc()+ CSS转换=即时崩溃
但不幸的是没有已知的解决方法,除了删除属性…你是如何解决你的问题?
尽量不要使用position: absolute;
而是使用position: relative;
。
你也可以尝试给-webkit-perspective: 1000;
以及-webkit-backface-visibility: hidden;