html - 使用 CSS Sprite 为不同的 HTML 元素使用单个背景图像

标签 html css css-sprites

我想问你是否可以对不同的 HTML 元素使用相同的背景图像?

意思是,我有 HTML 代码(其中的一部分):

<div class="src">
 <form action="#">
  <input type="text" class="text" />
  <input type="submit" class="submit" />
 </form>
</div>


<div class="menu">
 <ul class="level1">
  <li class="test1"><a href="#">Test1</a></li>
  <li class="test2"><a href="#">Test2</a></li>
 </ul>
</div>

和简单的CSS

.src {
 background: url(images.png) 0 -45px no-repeat;
}

.menu ul.level1 li {
 background: url(images.png) 0 0 no-repeat;
}

.menu ul.level1 li.test1 {
 background-position:-15px -120px;
}

.menu ul.level1 li.test2 {
 background-position: -50px -120px;
}

这个技术好吗?它占用更少的 HTTP 请求?

如何在 CSS 中编写一个通用的背景图片,并针对不同的 HTML 元素仅使用 background-position?或者不可能?

意思是:

.generic {
 background: url(images.png) no-repeat;
}

.src {
 background-position: 0 -45px;
}

.menu ul.level1 li {
 background-position: 0 0;
}

.menu ul.level1 li.test1 {
 background-position:-15px -120px;
}

.menu ul.level1 li.test2 {
 background-position: -50px -120px;
}

谢谢

最佳答案

是的,这很好。

您可以简单地为每个将使用它的元素声明背景图像,如下所示:

.element1, .element2, .element3 {
 background-image:url(image.png);
 background-repeat:no-repeat;
}

然后像您所做的那样声明每个元素的背景位置。

关于html - 使用 CSS Sprite 为不同的 HTML 元素使用单个背景图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11718046/

相关文章:

php - 您应该将用户登录详细信息存储在与您的网站相同的数据库中吗?

Javascript 菜单不工作 Firefox

css - 为什么我使用 Bootstrap 4 在顶行和导航栏之间有一个空格?

css - 你如何让背景重复 y 从低开始?

css - Sprite 回退

php - 向表格添加滚动条并限制最多 10 个结果

Android 显示超长滚动网页——这是不正确的行为

HTML5 视频上的 jQuery 叠加图像

html - div 元素的 CSS 背景不起作用

javascript - 使用 Javascript 更改背景位置?