html - 是否可以使用 CSS 覆盖 CSS 背景位置的一个轴?

标签 html css css-sprites

我正在使用 CSS sprites 构建一个六选项卡菜单。由于选项卡重叠,我决定在 Sprite 中使用图像的六个版本,一个用于每个事件选项卡状态(一个在另一个下面)。因此,由于相邻的重叠,我需要为每个状态更改多个选项卡,因此我不妨更改所有选项卡的位置。

在菜单中,菜单中的每个链接都有自己的从 sprite 图像定义的 CSS 背景。这一切都很好地结合在一起。

我想做的是向正文添加一个类,该类将更改所有链接背景的垂直位置,而无需定义水平,以便水平位置可以继承。这样,我只需要再定义六个类即可使其工作,而不是为每个状态定义六个类 (=36)。

相当于background-position:inherit -94px

我可以使用 jQuery 轻松完成此操作,但希望有一个仅 CSS 的解决方案。

enter image description here

最佳答案

不,这是不可能的。主要是因为 Firefox 不支持 background-position-xbackground-position-y 虽然可以理解,因为它不是规范的一部分。

不久前我自己也遇到了这个问题,但简短的调查告诉我这仍然不可能。

我假设您有一个 Sprite 想要用于菜单的多种状态。在这种情况下,您应该将 Sprite 分成 2 部分,一份用于状态 a,一份用于状态 b,当您添加类时,您只需使用 background-image 切换到图像 b。

这当然是又一张图像,但确实没有一种跨浏览器的方法可以只移动一个轴。

关于html - 是否可以使用 CSS 覆盖 CSS 背景位置的一个轴?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9875463/

相关文章:

javascript - 如何隐藏元素并在单击时显示新元素?

jquery - 将 div 附加到 div 以创建 div 网格

javascript - 表单中的 angularjs 复选框

jquery - 你知道一些关于 'iphone css layouts' 的好网站吗,你能帮我改进我的代码吗

CSS Sprite 自动化

html - 水平对齐来自垂直 css sprite 的 anchor 图像

jquery - 通过链接替换 Sprite 图像

ž 的 Html 实体代码

html - 为什么我在 CSS Grid 中得到的是列而不是行?

HTML:空 <p></p> 标签不显示换行符