基于具有不同原始图像大小的图像的带有捆绑 Sprite 图像的 CSS3 背景图像

标签 css background-image css-sprites

你好,我目前正在编写一个基于 CSS 3 的 Sprite 生成器,我的问题是:显示 CSS3 背景图像的最佳做法是什么,它基于具有不同原始图像尺寸的垂直拼接图像的捆绑 Sprite 图像显示 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 background-image 真正可用。

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 可以产生十进制值。不容易!

最佳答案

好的。到目前为止没有人回答所以我决定选择答案2。通过计算! 我已经为 Web 开发创建了一个图像处理服务,它可以自动处理 https://github.com/s-a/scream-js 上的所有内容。如果有人感兴趣。

关于基于具有不同原始图像大小的图像的带有捆绑 Sprite 图像的 CSS3 背景图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16643816/

相关文章:

javascript - 在 HTML 中向下/向上移动位置固定元素

css - 我在 app.css 中所做的更改不会更新页面

javascript - 使用 JavaScript 动画/移动 Sprite 时卡顿

facebook - 从FB自己的CDN加载FB logo

CSS 主体 `background-image` 在 Chrome、Safari (webkit) 上右对齐

asp.net - 使用 ASP.NET 创建 Sprite 图像

javascript - 使用 javascript(或 jQuery)选择和操作 CSS 伪元素,例如::before 和::after

javascript - Backbone.js - CSS 更改正在等待 javascript 完成 - 适用于 Firefox,不适用于 Chrome/Safari

html - 响应方 block 填充 100% 行

css - IE 8 中的图像未显示