我有两个原因要使用csssprites提交按钮:
问题是我想避免使用按钮的javascript,因此我需要使用input
类型的image
字段。我可以在这个字段上设置背景图像,就像我对任何csssprite一样。
问题在于我发现我必须将图像源设置为空像素,否则我会得到一个损坏的图像图标。
话虽如此,这是我提出的最佳解决方案:
<style>
.csssprite_cat {
background-image:url(http://www.mrfreefree.com/images/speciali/211/funny_cat_50.jpg); width: 50px;
height: 50px;
}
</style>
<input type=image src="http://www.grasse-ac.com/gif/no_pixel.gif" class="csssprite_cat">
<input type=image class="csssprite_cat">
(您可以直接将此文件加载到浏览器中 - 我从随机网站借用图片)。
它有点好,但我必须使用我们的老朋友pixel.gif。非常怀旧!
没有javascript可能没有更好的方法,除非在css中有一种方法可以隐藏破碎的图像文本和图标。
答案 0 :(得分:4)
不要使用图像输入类型,最好使用沼泽标准提交按钮并按照这种方式设置样式。
定义好background-image
后,您需要为您要使用的每个不同按钮定义唯一的background-positions
。
为了向后兼容,我建议使用类混合(因为截至目前IE仍然不支持CSS3属性选择器),如下所示:
<input type="submit" class="submit uniqueButtonClass" value="Submit" />
如果您为.submit
类提供background-image
属性,则可以为每个按钮单独设置background-position
属性,并避免重复几次。
示例:
.submit { background-image: url(path/to/image.png); width: 50px; height: 25px; border: 0; }
/* assuming 25px is the offset you're using */
.uniqueButtonClass { background-position: 0 25px; }
答案 1 :(得分:1)
我会使用上面的输入类型,或者你也可以:
<button><img src="http://www.mrfreefree.com/images/speciali/211/funny_cat_50.jpg" /></button>
button tag允许你在其中抛出任何东西,并允许更好地控制格式化。
在这种情况下,你可以在按钮内部设置一个范围或者它自己的按钮。