在错误元素上使用绝对定位将使您的表单在错误时保持不变。然而,这将需要额外的标记来维护您的表单显示。在此示例中,在您的输入字段中添加了一个包装器,<span class="item"></span>
以为错误元素提供位置边界。
请注意,为label
元素设置的属性也会影响您的错误标签。
有关示例,请参见http://jsfiddle.net/K5fR8/3/ 。
完整标记如下:
HTML
<form id="form" action="" method="post">
<p>
<label for="email">Email:</label>
<span class="item">
<input type="text" name="email" id="email" placeholder="Email" value="" class="required" />
</span>
</p>
<p>
<label for="password">Password:</label>
<span class="item">
<input type="password" name="password" id="password" placeholder="Password" value="" class="required" />
</span>
</p>
<p>
<label for=""></label>
<input type="submit" name="submit" id="submit" value="Log In" class="button" />
</p>
CSS
#form p label {
padding-top: 5px;
display: block;
width: 100px;
float: left;
}
#form p .item {
position: relative;
}
#form p .item label.error {
float: none;
position: absolute;
top: 0;
right: -100px; /* Offset by width set on label element */
padding: 0px;
}