使用3000个样式定义是非常不寻常的:有没有可能一些不起眼的移动设备会抱怨?
细节:我正在创造一款能够在尽可能多的浏览器上运行的游戏,所以这意味着我不会使用画布。我尝试通过改变样式变量来动画角色,但这导致了太多的回流。接下来,我尝试一次改变DOM节点"innerHTML",后来又尝试替换child和documentfragment。大多数浏览器都很好,但是Internet Explorer不能长时间使用DOM节点而不泄漏内存(即使IE9泄漏速度也很慢)。每次修复一个内存泄漏的尝试都会在其他地方导致另一个内存泄漏。我最终使用css代替,为每个像素位置使用单独的类。例如
class="Height123 Width456 Left789 Top0";
即使在IE8上也运行得很快,因为它只需要一次流,并且没有内存泄漏。它在我试过的所有桌面浏览器上都能完美运行,但它需要大约3000个类。(我不能使用任何CSS3快捷键,因为IE8只支持CSS2)。这让我对更小的设备感到不安。我并不拥有所有可能的手持设备,所以我想知道是否有任何已知的限制css样式的设备?
css没有大小限制。除了在MSIE中只能支持:
- 32 @import声明(IE问题:它能处理多少CSS include ?)
- 4095相同选择器的重复(http://www.habdas.org/2010/05/30/msie-4095-selector-limit/)