Html CSS精灵和图像映射

Html CSS精灵和图像映射,html,css,map,sprite,rollover,Html,Css,Map,Sprite,Rollover,我正在尝试将CSS精灵CSS类嵌入到图像映射中。最初,我创建了一个HTML图像映射,其中加载了8幅图片: 带有7个按钮的方形图像=未悬停时全部为灰色。 7个方形图像,每个都有一个按钮,上面有彩色的悬停按钮 这导致了图像的加载问题,因为只有有人悬停在上面,图像才会加载,从而导致用户出现悬停图像的短暂延迟 我在查看CSS精灵时发现,这是实现快速加载所需所有按钮的最有效方法 所以…我已经创建了CSS精灵,但是图像映射似乎只允许我调用图像文件,而不是为精灵创建的类。我将如何合并这两种技术,使我能够将鼠标

我正在尝试将CSS精灵CSS类嵌入到图像映射中。最初,我创建了一个HTML图像映射,其中加载了8幅图片:

带有7个按钮的方形图像=未悬停时全部为灰色。 7个方形图像,每个都有一个按钮,上面有彩色的悬停按钮

这导致了图像的加载问题,因为只有有人悬停在上面,图像才会加载,从而导致用户出现悬停图像的短暂延迟

我在查看CSS精灵时发现,这是实现快速加载所需所有按钮的最有效方法

所以…我已经创建了CSS精灵,但是图像映射似乎只允许我调用图像文件,而不是为精灵创建的类。我将如何合并这两种技术,使我能够将鼠标悬停在每个按钮上,并根据CSS精灵的位置激活它们各自的颜色

抱歉,如果这听起来太罗嗦或太混乱。很长一段时间以来,我一直在想这个问题


我是否应该放弃在带有定位的图像地图中添加1个图像的想法,然后加载7个CSS Sprited图像?

您需要使用CSS
悬停
修改器:

Somebutton {
  /* things needed to display the sprite */
  ...
  background-position: 0px -7px /* normal mode */
}

Somebutton:hover {
  /* things needed to display the sprite */
  ...
  background-position: 0px -56px /* shift the image
      49 pixels to the left to display color image. */
}

您需要使用css
悬停
修改器:

Somebutton {
  /* things needed to display the sprite */
  ...
  background-position: 0px -7px /* normal mode */
}

Somebutton:hover {
  /* things needed to display the sprite */
  ...
  background-position: 0px -56px /* shift the image
      49 pixels to the left to display color image. */
}

因此,您试图获得CSS精灵-背景位置可调的背景图像-使用html

这在Firefox、Chrome、Opera和Safari(2013年8月)以及Internet Explorer 7、8、9和10中进行了测试


基本上,您只需要一个
属性,该属性不会导致浏览器显示其“断开的图像”图标

我的首选方式是,1px x x 1px透明gif,base64编码,因此不需要实际的.gif文件:

src="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAIC‌​RAEAOw=="
目前还有一些其他建议的方法,但我尝试过的所有其他方法都至少有一个问题。这很有效

那就是平常的事了:

  • 固定高度和宽度,理想情况下通过css
  • 设置了背景位置的背景图像,如普通精灵图像
  • 在制作图像贴图时,一个
    usemap
    属性就像普通一样(如果您想要旧的IE支持,可以像普通一样使用
    usemap=“#someArea”

  • 正常
    元素,id对应于
    img
    usemap
    ,包含
    。这里建议的简单解决方案适用于图像贴图:将您的
    指定给一个完全透明的图像,如上所述,但没有背景图像,将其置于所有其他图像之上,然后将图像作为常规图像精灵放在下面。

    因此,您试图获得CSS精灵-背景位置可调的背景图像-使用html
    
    这在Firefox、Chrome、Opera和Safari(2013年8月)以及Internet Explorer 7、8、9和10中进行了测试


    基本上,您只需要一个
    属性,该属性不会导致浏览器显示其“断开的图像”图标

    我的首选方式是,1px x x 1px透明gif,base64编码,因此不需要实际的.gif文件:

    src="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAIC‌​RAEAOw=="
    
    目前还有一些其他建议的方法,但我尝试过的所有其他方法都至少有一个问题。这很有效

    那就是平常的事了:

    • 固定高度和宽度,理想情况下通过css
    • 设置了背景位置的背景图像,如普通精灵图像
    • 在制作图像贴图时,一个
      usemap
      属性就像普通一样(如果您想要旧的IE支持,可以像普通一样使用
      usemap=“#someArea”

    • 正常
      元素,id对应于
      img
      usemap
      ,包含
      。这里建议的简单解决方案适用于图像贴图:将您的
      指定给一个完全透明的图像,如上所述,但没有背景图像,将其置于所有其他图像之上,然后将图像作为常规图像精灵放在下面。

      这个答案一般是关于CSS精灵的-问题是关于在一个
      元素中使用CSS精灵,该元素链接到一个
      元素,该元素包含
      。这是一个棘手的问题,因为链接的图像必须是
      元素。这个答案通常是关于CSS精灵的-问题是关于在一个
      元素中使用CSS精灵,该元素链接到一个
      元素,该元素包含
      。这是一个棘手的问题,因为链接的图像必须是
      元素。