我正在尝试样式我的表单按钮,我在Firefox中遇到了一个问题,我不能得到底部...
我想将某些<a />
和<input type="submit" />
设置为相同的样式(我有一个按钮背景图像,使用滑动门技术应用悬停效果)。
这一切都工作得很好,除了在Firefox中,输入提交文本比它应该的略低。IE和Safari/Chrome工作得很好。
(来源:muonlab.com)
有人有什么想法吗?
谢啦,谢啦
<div class="buttons">
<a href="#" class="button btn-small-grey">« Back</a>
<input type="submit" class="button btn-large-green" value="Save changes" />
</div>
.button
{
cursor: pointer;
border: 0;
background-color: #fff;
color: #fff;
font-size: 1.4em;
font-weight: bold;
outline: 0;
font-family: Arial, Verdana, Sans-Serif;
}
a.button
{
display: block;
float: left;
text-align: center;
text-decoration: none;
padding: 5px 0 0 0;
height: 22px;
margin-right: 1em;
}
.btn-small-grey
{
height: 27px;
width: 96px;
background-position: 0 -81px;
background-image: url(/assets/images/buttons/buttons-small.gif);
}
.btn-large-green
{
height: 27px;
width: 175px;
background-position: 0px -54px;
background-image: url(/assets/images/buttons/buttons-large.gif);
}
5条答案
按热度按时间t1qtbnec1#
你也可以考虑用一个完全不同的元素来替换按钮。锚元素工作得很好。只要在它的“onClick”事件中添加一个“submit”函数,你就可以开始了。我认为这是一个更好(也更简单)的跨浏览器解决方案。
z4bn682m2#
我发现这篇文章是因为我几个月前就解决了这个问题,而当我今天再次遇到这个问题时,我已经不记得我做了什么了。很好。在仔细研究了我的css之后,我终于找到了这个“修复”。我不能居功,因为我是在网上的某个地方找到它的,但希望它对你和对我一样有用:
5lhxktic3#
我有同样的问题,每次我需要样式的形式按钮。对不起,相当忙碌的时刻,所以只有简短的描述我通常如何解决它。
在FF中,文本通常会低一些,就像你附加的图片一样,所以我简单地在按钮上应用“padding-bottom”,它会将按钮上的文本向上移动像素数。
问题是它也会移动IE中的文本,现在IE看起来有点不对劲。为了解决这个问题,我对同一个按钮应用了“行高”,其值与按钮的高度完全相同。这使得IE完全忽略填充,并将文本放置在中间。下面是HTML代码示例:
和CSS:
对不起,我没有直接应用到您的代码,但我有点忙碌的时刻,希望你得到的想法,它的帮助虽然。
附言:刚在IE8中检查过,上面所有的都是将文本向上移动几个像素。所以这意味着更多的(无休止的?)嘲笑顶部/底部填充......我失去了耐心,我想从现在开始我会把所有这些放在单独的样式表中,直到我找到一些相当容易和通用的解决方案
fkvaft9z4#
在不同的浏览器中,输入的格式不符合W3框模型约定,您可能需要包括:
对于火狐(Shelly指出),还应包括:
否则,您可以使用按钮
我从各种来源收集了所有这些解决方案,他们值得称赞
tag5nh1u5#
我遇到了同样的问题,我已经解决了(仅适用于FF和Safari),方法是固定宽度,但不固定高度,并使用值:填充(顶部和底部),行高,如果需要设置垂直对齐到中间。然而,如果你设置所有的值(甚至字体大小)在像素更容易做。
**编辑:**我认为没有一个跨浏览器的解决方案,因为这个问题是由于浏览器的文本渲染。要完全解决这个问题,你可以用文本绘制一个背景图片,并将该图片应用到链接或按钮上。即使有了这个解决方案,你失去了可访问性。
或者,您可以使用条件CSS语句来改进每个浏览器的布局。