代码之家  ›  专栏  ›  技术社区  ›  krukid

IE6/FF3中自定义高度输入[type=button]的奇怪填充更改

  •  1
  • krukid  · 技术社区  · 16 年前

    当我在一个按钮上设置自定义高度(即使它与默认值相同)时,我偶然发现了ie6/ff3中最奇怪的行为。下面的代码应该说明,虽然两个按钮的高度相同,但由于某些隐含的原因,它们的填充不同,无法以任何可预测的方式进行控制:

    <!DOCTYPE html 
         PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
      <title>weird-padding-change</title>
      <meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
      <style>
      input {
        vertical-align: middle;
        width: 100px;
        /* no effect: */
        padding-top: 0;
        padding-bottom: 0;
      }
      </style>
    </head>
    
    <body>
    
    <div style="background:red">
    <input type="button" style="height:24px;" value="_24px_"/>
    <input type="button" value="_Def. Height_"/>
    </div>
    
    </body>
    </html>
    

    如果有人知道如何解释,或者,更好的是,让填充物相等-请告诉我。

    谢谢。

    1 回复  |  直到 16 年前
        1
  •  0
  •   Wayne Austin    16 年前

    我在ff3中玩了一会儿,发现如果你加上:

    padding-bottom:2px;
    

    对于“自定义高度”按钮,无论您将按钮设置为多高,其文本仍将与默认高度按钮的文本对齐。与其他元素不同,如果输入按钮具有设置的高度或宽度,则向其添加填充不会添加到其总高度或宽度。

    至于一个解释,地狱知道,也许它与浏览器如何渲染输入按钮,以防止它们看起来可怕的像素化,因为它们被放大。