2009-10-14 95 views
4

我注意到IE浏览器有时会在按钮文本周围填充很大的内容。它似乎与按钮所具有的文本量成比例。这使得非常丑陋的按钮。IE中的按钮样式

由于国际化问题,我很犹豫是否按照固定宽度制作按钮。宽度百分比也一样。

人们如何处理像按钮这样的造型DIVs?

+0

我没有IE试验(因此评论和不回答),但你有没有尝试过使用重置样式表覆盖所有的默认设置,然后自己定义填充? – 2009-10-14 16:31:06

+0

nope,设置填充只增加了那里:P太糟糕了。 – mkoryak 2009-10-14 17:23:00

回答

4

下面是对我的作品的修复:

<!--[if IE]> 
<style type="text/css"> 

input { 
    overflow: visible; 
    padding-left:2px; 
    padding-right:2px; 
} 

</style> 
<![endif]--> 
0

我从来没有,直到你张贴了这个问题,注意到这一点 - 但你说得对。按钮上的填充量似乎是文本长度的“百分比”,这意味着向按钮添加更多文本时它会变得更宽。

如果只是要调整的行为按钮,这个工程:

input[type='button'] { 
    overflow: visible; 
} 

你不需要做这个条件,因为它不会影响其他浏览器按钮显示。您可以将规则更改为“提交”以及“按钮”。这将完全删除自动填充填充,并允许您添加自己的样式规则。

+1

我的印象是,IE6不支持这些类型的选择器(包含属性值)。我错了吗? – mkoryak 2009-10-15 15:50:37

+0

@mkoryak:对! – 2010-09-14 16:44:24

+0

嗯。 IE6在这个问题中没有具体提到。 – Fenton 2010-09-15 07:55:43

-1

我会通过CSS调整按钮的填充。

input {
padding: 0; }

卸下填充将限制按钮的大小以适合的内容。

+0

这不起作用,正如我在评论中提到的那样,这为已经存在的内容添加了额外的填充 – mkoryak 2009-10-15 15:51:25

-1

确保你这个文档类型添加到您的页面的顶部,它不会再这样了:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

你可以在这是什么一样在这里读了起来:http://www.w3.org/TR/xhtml1/但基本上它告诉页面什么您想要使用的某种HTML。

+0

但是,这肯定不是(X)HTML规范之间的区别,而是浏览器决定使用怪癖模式还是at)标准模式。请参阅http://www.quirksmode.org/css/quirksmode.html – Stewart 2009-10-25 16:01:40

+0

@Bertime:DOCTYPE和怪癖/标准模式与IE6和IE7围绕按钮文本添加的填充没有任何关系。即使在标准模式下,甚至使用严格的DOCTYPE IE6和IE7仍然继续添加更多的填充符号按钮文本。 – 2010-09-14 16:43:46

2

这使得招:

input[type='button'], input[type='submit'] { overflow: visible; } 
/* add above also your desired button padding if you want. */ 

FYI:

  1. 如果你愿意,你不必使用IE conditonal评论,因为这个CSS不打扰按键方式displaied其他浏览器。
  2. 在IE7上工作,但IE6不支持[type='...']选择器,因此它将忽略这种风格。对于IE6来说,唯一的方法就是对每个按钮应用一个类,并为这样的类添加相同的CSS { overflow: visible; }
  3. IE8不再需要这个了,因为他们终于修复了这个问题。