1

我有一个 html5 表单,它可以在 IE8 及更高版本中按预期显示,也可以在 Chrome、Safari、Forefox 和 Opera 中显示。但在 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. johnsmith@gmail.com" 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;
}
4

1 回答 1

2

问题是您正在清除选择框、文本区域和输入以及标签的浮动,而您应该只清除标签的浮动。

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

clear: left;从 CSS 选择器中删除 for并将label, select, textarea, input其添加到 for 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;
}
于 2012-12-10T18:30:34.570 回答