我试图用HTML制作表单。我能解释的最好方法是展示我的代码。
HTML:
form div {
position: relative;
display: inline-block;
height: 100px;
}
.inputContainer {
display: inline-block;
}
.inputContainer input {
display: block;
width: 14em;
}
.inputTitle {
display: inline-block;
position: relative;
bottom: 1.5em;
}

<form>
<div>
<div class="inputTitle">[Name]</div>
<div class="inputContainer">
<input type="text" name="lastName"></input><sup>last</sup>
</div>
<div class="inputContainer">
<input type="text" name="firstName"></input><sup>first</sup>
</div>
<div class="inputContainer">
<input type="text" name="middleName"></input><sup>middle</sup>
</div>
</div>
<div>
<div>[SS#]</div>
<div class="inputContainer">
<input type="text" name="socialFirst"></input>
</div>
-
<div class="inputContainer">
<input type="text" name="socialMiddle"></input>
</div>
-
<div class="inputContainer">
<input type="text" name="socialLast"></input>
</div>
</div>
</form>
&#13;
答案 0 :(得分:1)
因为内联元素的默认垂直对齐方式是基线,这是您所看到的。尝试将其更改为顶部:
form > div { vertical-align:top}
答案 1 :(得分:1)
vertical align
元素的默认inline-block
为baseline
。将vertical-align
更改为top
。
form div {
position: relative;
display: inline-block;
height: 100px;
vertical-align: top;
}
答案 2 :(得分:1)
除了使用vertical-align
之外,您还可以使用flexbox
。默认情况下,它会为您对齐项目,但您可以使用align-items
以不同方式对齐它们。
form {
display: flex;
}
@media (max-width: 1200px) {
form {
flex-direction: column;
}
}
form div {
position: relative;
display: inline-block;
height: 100px;
}
.inputContainer {
display: inline-block;
}
.inputContainer input {
display: block;
width: 14em;
}
.inputTitle {
display: inline-block;
position: relative;
bottom: 1.5em;
}
<form>
<div>
<div class="inputTitle">[Name]</div>
<div class="inputContainer">
<input type="text" name="lastName"></input><sup>last</sup>
</div>
<div class="inputContainer">
<input type="text" name="firstName"></input><sup>first</sup>
</div>
<div class="inputContainer">
<input type="text" name="middleName"></input><sup>middle</sup>
</div>
</div>
<div>
<div>[SS#]</div>
<div class="inputContainer">
<input type="text" name="socialFirst"></input>
</div>
-
<div class="inputContainer">
<input type="text" name="socialMiddle"></input>
</div>
-
<div class="inputContainer">
<input type="text" name="socialLast"></input>
</div>
</div>
</form>