css - 当元素大于图像时如何使用图像 Sprite ?

标签 css

如果我想使用 image sprites 但 im 样式元素比单个图标大得多,可以这样做吗?

假设下面我想用一个与实际文本大小大致相同的小图标来设置每个 p 的样式。为了阻止图像 Sprite 中的其他图标可见,我需要在每个图标之间留出大量空白,这可能会抵消文件大小和 http 请求数量带来的好处。

http://jsfiddle.net/MFpxD/1/

p {
       background: gold;
        line-height: 6em;
}
<p>Text</p>
<p class="one">Text 2</p>
<p class="two">Text 3</p>
<p class="three">Text 4</p>

添加标记是唯一可靠的选择吗? EG 我可以为每个应用了图像 Sprite 的 p 标签添加一个跨度,并且还具有固定的高度和宽度。然而,理想情况下,id 就像一个不添加标记的解决方案。

最佳答案

您可以使用 :before/:after 伪元素来包含您的 Sprite :

http://cssdeck.com/labs/g99y1q0b

p:before {
  content: '';
  display: inline-block;
  background: url('http://placekitten.com/100/100') no-repeat;
  width: 50px;
  height: 50px;
}

关于css - 当元素大于图像时如何使用图像 Sprite ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18771493/

相关文章:

jquery - 在 html/jquery/javascript 中选择部分堆叠图像

html - 使用 CSS 对齐多个元素

javascript - 从 displaform.aspx 隐藏 id 或 div

html - 仅在 iPad 上的表格单元格之间有非常细的白色边框

css - 为什么 CSS 文本颜色会覆盖 IE 10 中的占位符颜色?

html - 如何在分为两行的整个标题下划线

javascript - 如何使用css和js慢慢移动蓝色twitter鸟?

css - 具有位置属性的宽度固定容器中的 100% 元素?

html - 带关键帧的 CSS 动画

css - CSS 中的内容属性 - 如何将内容放入多个段落