0
<style type="text/css">
body {
    font-family:Helvetica, sans-serif; 
    font-size:12px;
}
p,
h1,
form,
button {
  border: 0;
  margin: 0;
  padding: 0;
}
.spacer {
  clear: both;
  height: 1px;
}
/* ----------- My Form ----------- */
.myform {
    margin: 0 auto;
    width: 400px;
    padding: 14px;
}
    /* ----------- basic ----------- */
    #basic {
        border: solid 2px #DEDEDE;
    }
    #basic h1 {
        font-size: 14px;
        font-weight: bold;
        margin-bottom: 8px;
    }
    #basic p {
        font-size: 11px;
        color: #666666;
        margin-bottom: 20px;
        border-bottom: solid 1px #dedede;
        padding-bottom: 10px;
    }
    #basic label {
        display: block;
        font-weight: bold;
        text-align: right;
        width: 140px;
        float: left;
    }
    #basic .small{
        color:#666666;
        display:block;
        font-size:11px;
        font-weight:normal;
        text-align:right;
        width:140px;
    }
    #basic input{
        float:left;
        width:200px;
        margin:2px 0 30px 10px;
    }
    #basic button{ 
        clear:both;
        margin-left:150px;
        background:#888888;
        color:#FFFFFF;
        border:solid 1px #666666;
        font-size:11px;
        font-weight:bold;
        padding:4px 6px;
    }
</style>

<div id="basic" class="myform">
  <form id="form1" name="form1" method="post" action="">
    <h1>Sign-up form</h1>
    <p>This is the basic look of my form without table</p>
    <label>Name
        <span class="small">Add your name</span>
    </label>
    <input type="text" name="textfield" id="textfield" />

    <label>Email
    <span class="small">Add a valid address</span>
    </label>
    <input type="text" name="textfield" id="textfield" />

    <label>Email
    <span class="small">Add a valid address</span>
    </label>
    <!-- Problem --->
    <input type="radio" name="something" id="r1" class="radio" value="1" /><label for="r1">One</label>
    <input type="radio" name="something" id="r2" class="radio" value="2" /><label for="r2">Two</label>
    <!-- Problem --->
    <button  type="submit">Sign-up</button>
    <div class="spacer"></div>


  </form>
</div>

このサンプルフォームが提供されましたが、ラジオボタンを台無しにせずに追加することはできません。

4

6 に答える 6

2

フォーム入力はすべて同じ幅 (200 ピクセル) でスタイルが設定され、左に浮いています。これはラジオ ボタンにも当てはまります。

このようなことで、正しい方向に進むはずです

<style type="text/css">
body{
    font-family:Helvetica, sans-serif; 
    font-size:12px;
}
p, h1, form, button{border:0; margin:0; padding:0;}
.spacer{clear:both; height:1px;}
/* ----------- My Form ----------- */
.myform{
    margin:0 auto;
    width:400px;
    padding:14px;
}
    /* ----------- basic ----------- */
    #basic{
        border:solid 2px #DEDEDE;
    }
    #basic h1 {
        font-size:14px;
        font-weight:bold;
        margin-bottom:8px;
    }
    #basic p{
        font-size:11px;
        color:#666666;
        margin-bottom:20px;
        border-bottom:solid 1px #dedede;
        padding-bottom:10px;
    }
    #basic label{
        font-weight:bold;
        text-align:right;
        width:140px;
        float:left;
    }
    #basic .small{
        color:#666666;
        display:block;
        font-size:11px;
        font-weight:normal;
        text-align:right;
        width:140px;
    }
    #basic input{
        float:left;
        width:200px;
        margin:2px 0 30px 10px;
    }
    #basic button{ 
        clear:both;
        margin-left:150px;
        background:#888888;
        color:#FFFFFF;
        border:solid 1px #666666;
        font-size:11px;
        font-weight:bold;
        padding:4px 6px;
    }
    #basic input.radio{
        width:50px;
        margin:2px 0 30px 10px;
    }
    #basic label.radio {
    width:40px;
    text-align:left;
    }
</style>

<div id="basic" class="myform">
  <form id="form1" name="form1" method="post" action="">
    <h1>Sign-up form</h1>
    <p>This is the basic look of my form without table</p>
    <label>Name
        <span class="small">Add your name</span>
    </label>
    <input type="text" name="textfield" id="textfield" />

    <label>Email
    <span class="small">Add a valid address</span>
    </label>
    <input type="text" name="textfield" id="textfield" />

    <label>Email
    <span class="small">Add a valid address</span>
    </label>
    <!-- Problem --->
    <input type="radio" name="r1" id="r1" class="radio" value="1" /><label class="radio" for="r1">One</label>
    <input type="radio" name="r2" id="r2" class="radio" value="2" /><label class="radio" for="r2">Two</label>
    <!-- Problem --->
    <button  type="submit">Sign-up</button>
    <div class="spacer"></div>


  </form>
</div>
于 2008-10-24T09:18:40.267 に答える
2

(スタイル タグ内に) 次の新しいスタイル ルールを追加します。

#basic input.radio
{
    width:20px;

}
#basic label.radiolabel
{
    width:40px;
    text-align:left;
    line-height:24px;
}

あなたのhtmlで:

次のように、各ラベルに新しいクラスを追加します。

<!-- Problem --->    
<input type="radio" name="textfield" id="r1" class="radio" value="1" />
<label for="r1" class="radiolabel">One</label>    
<input type="radio" name="textfield" id="r2" class="radio" value="2" />
<label for="r2" class="radiolabel">Two</label>    
<!-- Problem --->

編集:ラベルのスタイリングに行の高さを追加しました:)

于 2008-10-24T09:22:55.203 に答える
1

仕様によれば、フォーム入力要素をそれらを参照するラベル内に配置することが許可されています。

<label for="input">Label: <input type="radio" id="input" name="input" /></label>

それがスタイリングをすべて簡単にするかどうかを確認してください. (そうすべき。)

于 2008-10-24T09:17:57.633 に答える
0

あなたはそれらにテキスト入力と同じ名前を付けています-に変更name="textfield"しますname="my_radio"

また、メールアドレスの入力がないため、ラベルが入力と同期していません

于 2008-10-24T08:58:51.947 に答える
0

あなたのスタイル#basicinputは、ラジオボタンを含むフォーム内のすべての入力フィールドに200pxの幅を与え、#basic input.radioのような新しいスタイルを作成し、ラジオボタンに20pxのような個別の幅を与えます(これを必ず入れてください) #basic input styleの後に)、ラジオボタンにリンクするラベルに小さい幅を指定し、それらにクラスを追加して、幅を40pxなどに減らす必要があります。

次に、ラジオボタンとそれに関連するラベルが互いに整列する必要があります。

于 2008-10-24T09:11:54.463 に答える
0

レイアウトの問題を修正するには、次の CSS を追加します。

#basic input.radio { width:20px; }

これにより、ラジオ ボタンの大きな幅が修正されます。

#basic input { width:200px;}

すべての入力を 200px 幅にしていました。

全体として、ID とクラスのアプリケーションは実際には再利用を促進していませんが、それは別の問題です。

于 2008-10-24T10:00:18.920 に答える