私はcssをいじっていますが、希望するレイアウトを取得できません。すべての入力フィールドを垂直に揃えたいのですが、仕切りを維持することが重要です(JavaScriptを使用しているため)位置とフロート設定と私はそれを動作させることができないようです...
誰かがそれをすべて垂直に整列させる(入力フィールドの真上にラベルを付ける)素晴らしい解決策を持っているなら、私は本当にそれを感謝します
これが私の厄介なコードです:
私はcssをいじっていますが、希望するレイアウトを取得できません。すべての入力フィールドを垂直に揃えたいのですが、仕切りを維持することが重要です(JavaScriptを使用しているため)位置とフロート設定と私はそれを動作させることができないようです...
誰かがそれをすべて垂直に整列させる(入力フィールドの真上にラベルを付ける)素晴らしい解決策を持っているなら、私は本当にそれを感謝します
これが私の厄介なコードです:
Nightfirecat の提案の代わりに、テキスト ボックスの上にラベルを表示する計画がある場合、これでうまくいくかもしれません。
ところで: jsfiddle.net/hYa9a/4/ コードにタイプミスがあると思います。パスワード フィールドには、ID の 1 つが usernameIn として入力されます。これは passwordIn であるはずでしたか?
<style>
#optionsBar{ /*same as login*/}
.placeholder {
background-color: #fff;
outline: none;
font-family: "Times New Roman", Times, serif;
font-size: 12px;
text-indent: 0;
/*box-shadow: 0 1px 1px rgba(0, 0, 0, 0.07) inset, 0 0 8px rgba(82, 168, 236, 0.6); */
-moz-border-radius: 2px;
border-radius: 2px;
}
/*same as login*/
.selectInput {
border: 1px solid #8BAAFE;
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.07) inset, 0 0 5px rgba(33, 93, 253, 0.6);
}
#smLogin{
position:relative;
float:right;
width:100%;
height:30px;
}
#usernameIn{
position: relative;
float: left;
width:150px;
margin-left:-150px;
margin-top:20px;
}
#passwordIn{
position: relative;
float: left;
width:150px;
margin-left:-150px;
margin-top:20px;
}
#username{
width:150px;
position: relative;
float: left;
}
#password{
position: relative;
float: left;
width:150px;
}
#firstInput{
position: relative;
float: left;
}
#secondInput{
position: relative;
float: left;
}
</style>
<div id="optionsBar">
<div id="smLogin">
<form name="smLoginForm">
<div id="username" >
<label id="usernameLb" for="username">Username</label>
</div>
<div id="usernameIn" class="inputs">
<input id="firstInput" name="username" class="placeholder controlInput" type="text" size="20" value="">
</div>
<div id="password" >
<label id="passwordLb" for="password">Password</label>
</div>
<div id="passwordIn" class="inputs">
<input id="secondInput" name="password" class="placeholder controlInput" type="password" size="20" value="">
</div>
</form>
</div>
</div>
注: CSS だけでなく HTML コードを変更するオプションがあれば、フォーム ラベルとテキスト ボックスをラッパー div に配置することをお勧めします。何かのようなもの:
<div class="formobject">
<div id="username" >
<label id="usernameLb" for="username">Username</label>
</div>
<div id="usernameIn" class="inputs">
<input id="firstInput" name="username" class="placeholder controlInput" type="text" size="20" value="">
</div>
</div>
次に、個々のラベルとテキスト ボックスのすべてのスタイルを削除して CSS をクリーンアップし、代わりに幅とフローティングを formobject div のみに設定します。お気に入り:
<style>
.formobject{
float: left;
width:150px;
}
</style>
ラベルをフィールドの真上(オーバーレイのように)にする場合は、このJSFiddleで使用されているように、ラベルとテキストフィールドにposition: absolute;
も適用することをお勧めします。z-index: -1;
background-color: transparent;