エラー要素で絶対位置を使用すると、エラーが発生してもフォームを変更しないで済みます。ただし、フォームの表示を維持するには、追加のマークアップが必要になります。この例では<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;
}