您好,我目前正在编写一个基于 CSS 3 的精灵生成器,我的问题是:根据具有不同原始图像大小的垂直连接的图像,显示带有捆绑精灵图像的 CSS3 背景图像的最佳做法是什么?
我在jsfiddle试过这个,
.gui-background-brand-nodejs-64, .gui-background-brand-grayscale-nodejs-32{
background-image: url("http://www.shareimages.com/images/pics/0/0/3/65385-rJWWm5Wfk6ainac-sprite.png");
background-repeat: no-repeat;
display: inline-block;
background-size: 100%;
}
.gui-background-brand-nodejs-64{
width: 238px;
height: 64px;
background-position:0 0px;
}
.gui-background-brand-grayscale-nodejs-32{
width: 119px;
height: 32px;
background-position:0 -32px;
}
但这种技术只有在所有图像都具有相同图像大小的情况下才有效。因此,在示例中,第二张图片的高度应为 32px。我已经在jsfiddle制定了妥协的解决方案
1. 通过额外的 HTML 标记,但我认为它很难看,我想知道是否没有完整的 CSS 集成来使 CSS 背景图像真正可用。
2.通过计算
.gui-background-brand-grayscale-nodejs-32 {
width: 119px;
height: 32px;
background-size: 238px;
background-position: 0 -64px;
}
目前我在计算因素
X = (longest image width / current image width)
Y = sum(previous original image HEIGHTs)
background-size: {current image WIDTH*X}px;
background-position: 0 -{Y}px;
我希望可以用原始图像的宽度和高度值来定义 css,因为因子 X 可能会导致十进制值。不容易!