如何利用CSS创建漂亮的按钮

作者: Cpder 分类: 杂七杂八 发布时间: 2009-10-06 13:31
本文目录
[隐藏]

这个教程将教你如何使用CSS创造一个漂亮的动态按钮 ,所谓动态,指的是默认状态和聚焦状态时背景按钮图片不一样,让我们看一下这是怎么完成的:

1.滑动门

因为我们希望我们的按钮是灵活的,我们将要作出的背景图像,可以文本自动改变大小。对于这一点,我们就用心爱的sliding doors 技术;两个互补图片所创造出来的幻觉,一个默认的,一个点击时出现的。

我们的按钮式一个基本的<a>标签嵌套一个<span>标签,然后给每一个不同的层指定不同的背景图像。 下面是HTML代码:

<a class="button" href="#"><span>Bring world peace</span></a>

没有什么特别的东西,对吧? 接着,我们需要的是两张清晰的背景图片,分别使用在默认和聚焦状态下面:Normal Pressed

Normal
Pressed

Button design

我们将用这两张图片在CSS下面达到按钮的变幻效果,而不需要使用任何Javascript。背景图片应该设置一个合理的高度和宽度。比如这里,我们设定宽为300px,高为24px。

SPAN
A

2.样式化按钮

最后,我们需要一个CSS对按钮进行样式化 ,使这一切都联系在一起。因为我们要在此过程中,要对span和a元素增加到浮动属性,所以,我们对整下样式进行一个清除浮动:

.clear { /* generic container (i.e. div) for floating buttons */
    overflow: hidden;
    width: 100%;
}

a.button {
    background: transparent url('bg_button_a.gif') no-repeat scroll top right;
    color: #444;
    display: block;
    float: left;
    font: normal 12px arial, sans-serif;
    height: 24px;
    margin-right: 6px;
    padding-right: 18px; /* sliding doors padding */
    text-decoration: none;
}

a.button span {
    background: transparent url('bg_button_span.gif') no-repeat;
    display: block;
    line-height: 14px;
    padding: 5px 0 5px 18px;
}

注意:请确定span标签的 vertical padding (5 + 5)加上 line-height (14)等于button (24)的总高度。 使用不同的padding,意味着将使用不同的height。

我们现在已经有了一个漂亮的按钮,但他还没有达到聚焦时所需要的转换效果,所以,我们还需要加入:

a.button:active {
    background-position: bottom right;
    color: #000;
    outline: none; /* hide dotted outline in Firefox */
}

a.button:active span {
    background-position: bottom left;
    padding: 6px 0 4px 18px; /* push text down 1px */
}

OK,大功告成!

3.IE下额外的措施

在IE下运行的时候,IE没有返回按钮正常状态。要让他在IE上也能工作, 我们需要在<a>标签添加一点点的JavaScript。

<a class="button" href="#" onclick="this.blur();"> … </a>

用这种按钮提交Forms时,可以简单的为按钮的onclick事件增加跟多的调用。

翻译的不是太流畅,如果上面的看不明白,你可以点击这里查看英文原文教程:How to make sexy buttons with CSS

Leave a Reply

Your email address will not be published. Required fields are marked *

Optimized by WPJAM Basic