原文地址:Rediscovering the Button Element
翻译整理:西米CC
你肯可能会对代码中空白的alt标签感到疑惑,尤其是那些认为页面中每张图片都应该添加alt属性的人。事实上alt中的描述信息不是必须的,空白标签完全符合标准,并且能帮助屏幕阅读器有效的筛选信息,为用户寻找下一个可访问项目节省宝贵时间。虽然我们在设计时用了图标进行美化,但很大程度上而言,这些图标也可算是多余的,而对用户来说,单纯的“Submit”比“alt描述+Submit”明显要来得更简洁。
CSS部分虽然大部分都比较简单,但是鉴于浏览器的差异,如padding之类的属性被渲染时会产生很多不稳定的因素,幸运的是解决方法还是有的:
.buttons a, .buttons button{
display:block;
float:left;
margin:0 7px 0 0;
background-color:#f5f5f5;
border:1px solid #dedede;
border-top:1px solid #eee;
border-left:1px solid #eee;
font-family:"Lucida Grande", Tahoma, Arial, Verdana, sans-serif;
font-size:100%;
line-height:130%;
text-decoration:none;
font-weight:bold;
color:#565656;
cursor:pointer;
padding:5px 10px 6px 7px; /* Links */
}
.buttons button{
[color=Blue] width:auto;
overflow:visible;
padding:4px 10px 3px 7px; /* IE6 */
}
.buttons button[type]{
padding:5px 10px 5px 7px; /* Firefox */
line-height:17px; /* Safari */
}
*:first-child+html button[type]{
padding:4px 10px 3px 7px; /* IE7 */
}
.buttons button img, .buttons a img{
margin:0 3px -3px 0 !important;
padding:0;
border:none;
width:16px;
height:16px;
}
一个问题就是在显示长按钮时IE存在BUG,相关信息可以参考Jehiah.cz的文章,但是我们可以通过上述CSS代码中width和overflow属性的声明来解决。
添加一些颜色来增加按钮功能的辨识性
在作者的wufoo网站中,使用绿色来表征提交、保存等正性动作,用红色来表征取消、删除等负性操作,而一些中兴的用应用则用蓝色来表示。不管对哪个网站而言,这种利用人们的色彩感觉来帮助我们表达信息的方式,都不失为一个很好的选择:
/* STANDARD */
button:hover, .buttons a:hover{
background-color:#dff4ff;
border:1px solid #c2e1ef;
color:#336699;
}
.buttons a:active{
background-color:#6299c5;
border:1px solid #6299c5;
color:#fff;
}
/* POSITIVE */
button.positive, .buttons a.positive{
color:#529214;
}
.buttons a.positive:hover, button.positive:hover{
[color=Blue] background-color:#E6EFC2;
border:1px solid #C6D880;
color:#529214;
}
.buttons a.positive:active{
[color=Blue] background-color:#529214;
border:1px solid #529214;
color:#fff;
}
/* NEGATIVE */
.buttons a.negative, button.negative{
color:#d12f19;
}
.buttons a.negative:hover, button.negative:hover{
[color=Blue] background:#fbe3e4;
border:1px solid #fbc2c4;
color:#d12f19;
}
.buttons a.negative:active{
[color=Blue] background-color:#d12f19;
border:1px solid #d12f19;
color:#fff;
}
最后需要说明的是,上述只是Wufoo网站中的实现方法,要设计类似的效果还是有很多其它的途径,比如文本替换技术等等。因为button标签中内容编辑的自由度比较大,我们甚至可以在其中添加span元素设计出美轮美奂的视觉效果,具体方法可以参考Alex Griffioen的文章。