我想优雅地解决一些按钮和图像的样式问题。我的目标是有一个看起来像按钮如下:使用CSS精灵设计按钮背景图像,按钮图标图像和文本
(哈克MSPAINT样机)
Button Example http://www.robhruska.com/images/button-example.png
不过,我有一组标准我想见见:
- 我还需要能够有图标图像单独存在,作为一个按钮,没有文本(即,按钮的背景是图标图像和按钮的宽度/高度=图标图像宽度/高度)。
- 唯一的图标按钮需要支持
:hover
指出,更改背景图标。 - 文字按钮需要支持渐变背景上
:hover
改变,但图标本身并没有改变。
我有一个垂直CSS sprite图像中可用的图标图像和渐变图像。
目前,我只能认为与独立的多组样式文本按钮和图标按钮只有做到这一点,沿着线:
<!-- text-button -->
<!-- button.text-button would have gradient background and border -->
<!-- button.text-button:hover would change to the hover gradient -->
<!-- .icon would have the icon background (icon border is included in image) -->
<button class="text-button">
<div class="icon-delete">Button Text</div>
</button>
<!-- icon-only button -->
<!-- button.icon-button would have the specific icon image background -->
<!-- button.icon-button:hover would change to the hover state background -->
<!-- button styling is different than .text-button, since icon border is included in image -->
<button class="icon-button-delete"></button>
我特别不喜欢使用内<div>
对于文本按钮,因为它似乎增加了可能不必要的更多标记。它也使得如果我想稍后再回来并将文本添加到按钮中,则必须更改多个组件,而不是仅更改按钮类。这也意味着我可能必须为我的图标精灵定义几种不同的按钮/ div样式组合的图像位置,这不是DRY。
总结我的问题:我如何才能在<button>
做到这一点有单个顶级风格,而不是使用嵌套元素或单独的样式的icon- VS文本的按钮?它不一定是<button>
,它可以是任何元素,如果它完成这个优雅。
我并不真的需要一个完整的代码示例,只是因为它可以如何实现最佳的建议。
它好像这可能不是能够简单地做。一个简单的解决方案是摆脱渐变,并使用纯色背景。 – 2010-06-25 20:36:37
此外,这看起来可能与CSS3和多个后台支持。 – 2010-06-25 21:21:15