2012-12-10 72 views
1

我有一个html5表单,可以在IE8及以上版本中显示,也可以在Chrome,Safari,Forefox和Opera中显示。但在IE7中,标签对齐方式完全不同 - 标签显示在输入字段上方而不是左侧,而且水平对齐,这就是我所追求的。表单标签/输入对齐方式与IE7不一样

我还没有在StackOverflow上发现这个问题,但是发现了一些非常类似于CSS技巧的东西。我确实在这里有一个链接,但作为第一次海报我的问题被拒绝,因为它有超过2个链接(由于额外的2个链接下面显示的问题截图)。所以我不得不删除它......对于CSS技巧的帖子的答案给了我一些需要看的地方,但它不是特定的 - 它说“我自己的想法,解决方案包括将标签标签和一些IE条件CSS“。

形式的显示的差别示于这些截图:

IE7:http://www.s203574650.websitehome.co.uk/Screenshots/IE7_form.jpg

IE10:http://www.s203574650.websitehome.co.uk/Screenshots/IE10_form.jpg

HTML代码:

<form id="contact" action="contact_us.php" method="post"> 
<div> 
<label for="fullname">Your Full Name:</label> 
<input id="fullname" name="fullname" type="text" placeholder="eg. John Smith" required aria-  required="true" > 
</div> 
<div> 
<label for="email">Your Email Address:</label> 
<input id="email" name="email" type="email" placeholder="eg. [email protected]" required aria- required="true" title="Please enter a valid email address"> 
</div> 
<div> 
<label for="phone">Your Phone Number (optional):</label> 
<input id="phone" name="phone" type="tel" placeholder="eg. 07000 123456" pattern="([0-9]|(|-)?) {10,14}" title="Please use only digits, spaces and hyphens."> 
</div> 
<div> 
<label for="experience">Your Badminton Experience:</label> 
<select name="experience"> 
<option value="default">Please Choose</option> 
       <option value="Intermediate">Intermediate</option> 
        <option value="Advanced">Advanced</option> 
        <option value="Don't know">Don't know</option> 
        </select>     
</div> 
<div> 
<label for="club_matches">Have you previously played matches for a club?:</label> 
<input type="radio" name="club_matches" value="Yes">Yes 
<input type="radio" name="club_matches" value="No" checked>No 
</div> 
<div>     
<label for="info">Additional Info/Questions: </label> 
<textarea name="info" type="text"> 
</textarea> 
</div> 
<div> 
<label for="blank"></label> 
<input type="submit" id="submit" value="Submit Form" name="sent"> 
</div> 
</form> 

而CSS:

/* styles for contact form */ 
#contact 
{ 
background-color: #DDE2E2; 
-webkit-border-radius: 10px; 
-o-border-radius: 10px; 
-moz-border-radius: 10px; 
border-radius: 10px; 
border: solid slategrey 2px; 
box-shadow: 3px 3px 5px slategrey; 
-o-box-shadow: 3px 3px 5px slategrey; 
-moz-box-shadow: 3px 3px 5px slategrey; 
-webkit-box-shadow: 3px 3px 5px slategrey; 
padding: 3%; 
font-family: arial; 
color: #0099FF; 
font-weight:bold; 
align:center; 
width: 80%; 
margin-left:40px; 
} 

label 
{ 
width: 40%; 
float:left; 
text-align:right; 
margin-right: 2em; 
font-size: 0.8em; 
} 

label, select, textarea, input 
{ 
margin-bottom: 1.5em; 
clear:left; 
margin-left: 1em; 
} 

#submit 
{ 
margin-top: 5%; 
margin-bottom: 0; 
} 
+0

错字:'对齐:中心;' - >'文本对齐:中心;'然而,在这种情况下,您可能会更好地移除此无效样式,而不是使用“text-align:center”。 –

+0

哎呀,你说得对,现在已经删除了 - 谢谢。 – cpr

回答

2

问题在于,当清除标签时,您正在清除选择框,textareas和输入以及标签的浮动内容。

label, select, textarea, input { 
    margin-bottom: 1.5em; 
    clear: left; 
    margin-left: 1em; 
} 

从CSS选择label, select, textarea, input删除clear: left;并把它添加到一个用于label

label { 
    width: 40%; 
    float: left; 
    clear: left; 
    text-align: right; 
    margin-right: 2em; 
    font-size: 0.8em; 
} 
label, select, textarea, input { 
    margin-bottom: 1.5em; 
    margin-left: 1em; 
} 
+0

我知道它必须是简单的东西,可能与漂浮/清除有关。现在在IE7中看起来和新的浏览器一样。谢谢! – cpr