我正在尝试使用css'滑动门'技术设置按钮的样式,但它无法正常工作。我目前只能访问firefox 3,所以这个问题可能不会在其他浏览器中出现,但我也想为firefox解决它。

以下是问题所在的图片:

http://img131.imageshack.us/img131/3559/buttons.png

正如您所看到的那样,第二面比第一面低一个像素,并且还没有超过正确。这是我正在使用的代码:

button
{
    font-weight: bold;
    border: none;
    background: top left url(../images/blue_button_left.gif) no-repeat #24AADF;
    color: #FFFFFF;
    height: 25px;
}

button span
{
    display: block;
    height: 25px;
    background: top right url(../images/blue_button_right.gif) no-repeat;
    position: relative;
}


<a href="http://localhost"><button class="important" type="button"><span>Register</span></button></a>
<button type="submit"><span>Submit</span></button>

如何解决此问题?我尝试使用top来相对定位span:-1px right:-3px但是文本是错误对齐的。

感谢。

有帮助吗?

解决方案

尝试将按钮的填充设置为零,然后使用填充左侧和宽度进行播放,将文本放在正确的位置。

button { padding:0; padding-left:5px; width:90px; /* total width:95px */ }
button span { ... }

如果你看HTML块显示:填充被添加到所述对象的总体宽度,并且背景开始在填充区和右半被填充

但请注意,按钮元素不适合嵌入内的任何其他节点(如span)。他们可以在浏览器中正常工作,但是IE可以让你的生活变得非常艰难(更不用说据我所知,这是无效的)

其他提示

http://www.oscaralexander的.com /教程/如何对做性感-按钮与 - css.html

我刚刚在div背景上滑动门,这个网站的代码运行得很好。

像按钮这样的表单元素总是难以设计风格,并且充满了像这样的小错误。

不是将类应用于按钮元素本身,而是尝试将按钮的样式应用于实际按钮内的额外span元素?

简而言之:

button {
background: white;
border: 0;
}

button div {
    font-weight: bold;
    border: none;
    background: top left url(../images/blue_button_left.gif) no-repeat #24AADF;
    color: #FFFFFF;
    height: 25px;
}

button div div {
    height: 25px;
    background: top right url(../images/blue_button_right.gif) no-repeat;
    position: relative;
}

和HTML:

<button type="submit"><div><div>Submit</div></div></button>
scroll top