完成したコードを提供するだけでなく、なぜこれが起こっているのかを説明しようと思います。
したがって、position:relativeを使用する場合。要素をその親に対して相対的に配置します。.forgotten_2画像では、右を使用しました:226px; そのようにして、親()の右端から226pxの位置に配置しました。
さて、フォームが2行に分かれている場合、その配置は適切ではありません。
代わりに使用する必要があるもの:
- 入力フィールドに背景画像としてアイコンを配置する(どこかにリンクする必要がない場合)
- 入力とそのアイコンの周りにdivをラップするようにHTMLを変更し、それに比較的配置します
私が見るように、「忘れた...」を指すリンクが必要なので、おそらく2番目の解決策を使用する必要があります。HTMLは次のようになります。
<form method="" action="" name="">
<div class="input-box">
<img class="forgotten_1" src="http://www.razorrobotics.com/images/question-mark.gif" onclick="open_win()" title="Forgotten Your Username?">
<input type="text" id="login" onfocus="if(this.value=='E-Mail Address') this.value='';" onblur="if(this.value=='') this.value='E-Mail Address';" value="E-Mail Address">
</div>
<div class="input-box">
<img class="forgotten_2" src="http://www.razorrobotics.com/images/question-mark.gif" onclick="open_win()" title="Forgotten Your Password?">
<input type="password" id="login" onfocus="if(this.value=='Password') this.value='';" onblur="if(this.value=='') this.value='Password';" value="Password">
</div>
<input type="submit" name="submit" value="Log In" class="general_button" style="margin-left:-35px;">
</form>
次に、input-box用にCSSを追加します。
block_login(フォームの親)にはfloat:rightがあることに注意してください。それはあなたのスタイリングを妨げるかもしれません;)