LI 中的 CSS Sprite 对齐,其中图像应位于右侧

标签 css alignment background-image sprite

我似乎无法让 Sprite 在 LI 元素的右侧对齐

<li class="menuItems">
      <div style="background: #ffffff url('pixmaps/glyphicons.png') no-repeat 
-553px -56px; height:27px;width:29px;background-position: -30px 0px;">
        <a href="#"  >Streams</a>
    </div>
</li>

Weird alignment

我尝试使用和不使用 div - 将 sprite-background 放在 li 或 a 元素上,但表现几乎相同。 更改 li 的填充(一个经常阅读的解决方案)会弄乱我的 -Link,它应该保留在这个位置。

那么解决这个问题的正确方法是什么?当然,我可以修改 sprite 并添加一个巨大的透明空间,但这并不是真正的方法,因为我的 sprite 包括整个 glyphiconset(400 多个图标 + 此外所有图标都以较暗的色调显示)。

谢谢!

最佳答案

我本来打算把它留作评论,但它实际上更像是一个答案。

如果要使用额外的元素,我一般使用span。将其设置为 display: block,同时设置 heightwidth(与图标的大小相同)。如果你不希望它影响布局,将它设置为 position: absolute,并定位它,做类似 right: 10px; 的事情。 top: 10px 等。如果你使用 position: absolute,你还需要确保父级也设置了定位,比如 position: relative

完整示例:

.icon {
  position: absolute;
  display: block;
  width: 32px;
  height: 32px;
  top: 4px;
  right: 4px;
  background: url('pixmaps/glyphicons.png') no-repeat -553px -56px; /* set the offset to the exact position of your icon */
}

.menuItems {
  position: relative;
}

关于LI 中的 CSS Sprite 对齐,其中图像应位于右侧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14843421/

相关文章:

javascript - 如何缩小多复选框过滤器中的搜索结果?

jquery - 动画 CSS 生成 :after content?

c - C 数组的对齐方式 - 数组元素的对齐方式大于元素大小

html - 在中心排列三个 DIV

html - 如何重复背景图像的一部分

css - 背景图片不显示 IE8

jquery - 使用 materializecss 时 CheckBox 不呈现

html - 我不明白为什么 border 属性不起作用

ios - 如何在 NSMutableAttributedString iOS Swift 3 中设置对齐方式

css - 多个背景位置