2012-03-03 57 views
4

在所有主流浏览器(例如,包括IE7)中,是否有一种简单的方法可以将标签与文本对齐(即包括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; 
} 
+0

发布一些代码,以便我们可以看一看。 – 2012-03-03 00:32:48

+0

我知道它被认为是_dirty_方式,但我仍然使用这个表。这是我发现可靠处理它的唯一途径。 – 2012-03-03 00:48:56

回答

7

display:inline-block声明是IE7不fully supported及以下,所以你必须使用display:inline而是结合zoom:1 hasLayout的黑客模仿与明星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

+0

该解决方案只是创建一个较高的文本框/标签,而不是一个居中的元素。大部分其他解决方案似乎都做同样的事情。那么如何提出不同的问题:如何创建一个垂直居中的_image_? – taranaki 2017-03-01 23:47:25

+0

2012年的“声明不完全支持IE7”确定,但对于今天的LOL – Adrian 2017-08-02 09:51:16