【问题标题】:vertically align a label and a textbox in all browsers在所有浏览器中垂直对齐标签和文本框
【发布时间】:2013-11-05 13:19:06
【问题描述】:

是否有一种简单的方法可以在所有主要浏览器(即包括 IE7)中将标签与文本框对齐?我将标签和文本框上的显示设置为内联块,这似乎在任何地方都可以使用,但在标签所在的 IE7 中div的底部。

<label class="inputLabel" for="emailTextBox">
            Email:</label>
<input class="textBox" type="text" id="emailTextBox" value=" Email address" />

input.textBox 
{
    margin-top: 5px;
    margin-bottom: 5px;
    height: 30px;
    width: 350px;
    font-size: 15px;
    font-family: Verdana;
    line-height: 30px;
    display:inline-block; 
}

label.inputLabel
{
    font-family: Verdana;
    font-size: 15px;
    line-height: 30px;
    display:inline-block;
}

【问题讨论】:

  • 贴一些代码让我们看看。
  • 我知道这被认为是 dirty 方式,但我仍然为此使用表格。这是我发现可靠处理它的唯一方法。

标签: html css internet-explorer-7


【解决方案1】:

display:inline-block 声明不是 IE7 及更低版本的 fully supported,因此您必须使用 display:inlinezoom:1 hasLayout hack 来模仿声明,并使用 star hack 来定位 IE7。要对齐文本框和标签,我们可以使用vertical-align:middle 属性,如下所示:

CSS

input.textBox {
    margin-top: 5px;
    margin-bottom: 5px;
    height: 30px;
    width: 350px;
    font-size: 15px;
    font-family: Verdana;
    line-height: 30px;
    display:inline-block; 
    *display: inline;     /* for IE7*/
    zoom:1;              /* for IE7*/
    vertical-align:middle;
}

label.inputLabel {
    font-family: Verdana;
    font-size: 15px;
    line-height: 30px;
    display:inline-block;
    *display: inline;     /* for IE7*/
    zoom:1;              /* for IE7*/
}

Demo

【讨论】:

  • 这个解决方案只是创建一个更高的文本框/标签,而不是一个居中的元素。周围的大多数其他解决方案似乎都在做同样的事情。那么如何以不同的方式提出问题:如何创建垂直居中的图像
  • “声明不完全被 IE7 支持”在 2012 年可以,但是今天大声笑
猜你喜欢
  • 2023-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-27
  • 1970-01-01
  • 2016-08-14
  • 2015-06-04
  • 2017-08-30
相关资源
最近更新 更多