Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance 使用Modernizer避免csstransforms和csstransforms3D的CSS规则_Performance_Css_Modernizr - Fatal编程技术网

Performance 使用Modernizer避免csstransforms和csstransforms3D的CSS规则

Performance 使用Modernizer避免csstransforms和csstransforms3D的CSS规则,performance,css,modernizr,Performance,Css,Modernizr,Modernizer将类添加到HTML元素中。如果浏览器支持CSS的3D变换,它通常也支持CSS的2D变换。因此,如果我想基于特征检测应用不同类型的变换,我会: .csstransforms .off-canvas-left{ @include translate(-($off_canvas_width + $shadow_blur), 0); } .csstransforms3d .off-canvas-left{ @include translate3D(-($off_canvas

Modernizer将类添加到HTML元素中。如果浏览器支持CSS的3D变换,它通常也支持CSS的2D变换。因此,如果我想基于特征检测应用不同类型的变换,我会:

.csstransforms .off-canvas-left{
  @include translate(-($off_canvas_width + $shadow_blur), 0);
}

.csstransforms3d .off-canvas-left{
  @include translate3D(-($off_canvas_width + $shadow_blur), 0, 0);
}
问题(如果是问题)在于,在支持translate3D的设备上,第一条规则也会执行


这是性能问题吗?我怎样才能防止这个问题?

不,这不是问题。就性能而言,几乎不可能区分两者之间的差异。它编译成与以下内容非常相似的内容,一直都在进行,没有问题:

.off-canvas-left {
    transform: /* Fallback value */ ;
    transform: /* Possibly unsupported value */ ;
}
为了完全避免此问题,您必须在应用
.csstransforms3d
时更改Modernizer代码以检查
.csstransforms
类,或者在运行Modernizer后,使用
.csstransforms3d
迭代所有元素并删除
.csstransforms
类。但是,由于它对性能没有任何明显的影响,因此很可能不值得您的努力

对我来说,这种情况最大的缺点就是类名混乱,但这在Modernizer中非常常见,而且只有我们作为开发人员才能看到