Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/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
Css 有相同尺寸的图像来创建精灵很重要吗?_Css_Svg_Sprite - Fatal编程技术网

Css 有相同尺寸的图像来创建精灵很重要吗?

Css 有相同尺寸的图像来创建精灵很重要吗?,css,svg,sprite,Css,Svg,Sprite,我一直在做一个巨大的项目,有大约1000张图片,甚至可能还会增加。因此,为了减少HTTP请求的数量,我创建了几个精灵,每个精灵大约有100个图像。但是,当我在项目中使用这些精灵时,生成的scss类属性无法正常工作 假设我为精灵生成了以下css: .svg-main{ background: url("sprites/main.sprite.svg") no-repeat; } .svg-icon{ background-position: 0 0; } .svg-icon-d

我一直在做一个巨大的项目,有大约1000张图片,甚至可能还会增加。因此,为了减少HTTP请求的数量,我创建了几个精灵,每个精灵大约有100个图像。但是,当我在项目中使用这些精灵时,生成的scss类属性无法正常工作

假设我为精灵生成了以下css:

.svg-main{
    background: url("sprites/main.sprite.svg") no-repeat;
}

.svg-icon{
    background-position: 0 0;
}

.svg-icon-dims {
    width: 30px;
    height: 33px;
}
.svg-home {
    background-position: 0 7.741935483870968%;
}

.svg-home-dims {
    width: 33px;
    height: 33px;
}

.svg-info-gray {
    background-position: 0 15.483870967741936%;
}

.svg-info-gray-dims {
    width: 36px;
    height: 36px;
}
当我参考图像时,房屋顶部被切掉,信息灰色图标的顶部显示出来。因此,显而易见的解决方案是显式地更正填充以及宽度和高度属性。我知道这是因为精灵中使用的图像尺寸不均匀造成的。即使在一个精灵中有相同维度的所有图标,也会出现此问题

那么,如何解决这一问题呢?那么,当我们创建一个精灵时,有相同尺寸的图像是重要的吗?还有其他方法可以简化这一过程吗

任何建议都将不胜感激

注意:我用于svg图像和png/jpeg图像。任务跑者-吞咽


谢谢。

如果图像在服务器上,您应该已经知道图像的大小。如果没有,那么您可以使用JavaScript AJAX将文件名发送到PHP到
getimagesize()
,然后在客户端上更改图像大小,使用JavaScript
Element.height='33'
Element.width='33'
。我建议将图像保持在原始大小,或将其重新保存为新大小,以避免矢量缩放。是的,正确。我知道我的图像的尺寸。但我的问题是,如果我有3个维度的图像,20 x 20,24 x 24和54 x 54。当我用这3幅图像创建一个精灵并在我的项目中使用它们时,它们会错位,尺寸也会自动改变。所以,如果我需要精灵在我的项目中正确对齐,我是否需要让精灵中使用的所有图像具有相同的尺寸?或者有没有其他方法来修复它们。正如您所说,我同意将图像保留在其原始大小:)@phpglue如果图像位于服务器上,您应该已经知道图像的大小。如果没有,那么您可以使用JavaScript AJAX将文件名发送到PHP到
getimagesize()
,然后在客户端上更改图像大小,使用JavaScript
Element.height='33'
Element.width='33'
。我建议将图像保持在原始大小,或将其重新保存为新大小,以避免矢量缩放。是的,正确。我知道我的图像的尺寸。但我的问题是,如果我有3个维度的图像,20 x 20,24 x 24和54 x 54。当我用这3幅图像创建一个精灵并在我的项目中使用它们时,它们会错位,尺寸也会自动改变。所以,如果我需要精灵在我的项目中正确对齐,我是否需要让精灵中使用的所有图像具有相同的尺寸?或者有没有其他方法来修复它们。正如您所说,我同意将图像保持在原始大小:)@PHPglue