CSS を使用してスタイルを設定しようとすると、2 つの問題が発生するページがあります。最初のコード:
HTML:
<div class="formarea">
<div class="formimg">Du själv:</div>
<div class="formtext">
<p class="inhead">Personuppgifter:</p>
<p class="tdone" id="namespan">Namn</p> <p class="tdtwo"><input type="text" name="graduate[name]" id="name" /></p>
<p class="tdone" id="addrspan">Adress</p> <p class="tdtwo"><input type="text" name="graduate[address]" id="address" /></p>
<p class="tdone" id="postspan">Postadress</p> <p class="tdtwo"><input type="text" name="graduate[postal]" id="postal" /></p>
<p class="tdone" id="mailspan">E-post</p> <p class="tdtwo"><input type="text" name="graduate[email]" id="email" /></p>
<p class="tdone" id="phonspan">Mobilnummer</p> <p class="tdtwo"><input type="text" name="graduate[phone]" id="phone" /></p>
<p class="tdone" id="pnrspan">Personnummer</p> <p class="tdtwo"><input type="text" name="graduate[pnr]" id="pnr" /></p>
<p class="inhead">Matalternativ:</p>
<p class="tdone">Vegetarian (vegan etc. fyll även i detta nedan)</p><p class="tdtwo"><input type="checkbox" name="graduate[veg]" value="Ja" /></p>
<p class="tdone">Allergier och andra matpreferenser</p><p class="tdtwo"><textarea name="graduate[allergies]" id="allergies"></textarea></p>
<p class="inhead">Alkoholalternativ:</p>
<p class="tdone">Öl</p><p class="tdtwo"><input type="radio" name="graduate[drink]" value="Öl" checked /></p>
<p class="tdone">Cider</p><p class="tdtwo"><input type="radio" name="graduate[drink]" value="Cider" /></p>
<p class="tdone">Alkoholfritt</p><p class="tdtwo"><input type="checkbox" name="graduate[alcfree]" value="Ja" /></p>
</div>
</div>
CSS: body { }
.formarea {
margin:auto;
margin-top:25px;
padding:0px;
border:none;
width:364px;
position:relative;
background-color:#eeeeee;
}
.formimg {
margin-top:0px;
margin-left:0px;
padding:0px;
border:none;
width:45px;
height:45px;
background-color:#dddddd;
}
.formtext {
margin-top:-45px;
margin-bottom:0px;
margin-left:64px;
padding:0px;
border:none;
width:300px;
float:left;
clear:both;
background-color:#cccccc;
}
.inhead {
margin-top:0px;
margin-bottom:2px;
padding:0px;
border:none;
width:300px;
font-size:20px;
}
.tdone {
margin-top:2px;
margin-bottom:2px;
padding:0px;
width:150px;
float:left;
text-align:left;
}
.tdtwo {
margin-top:2px;
margin-bottom:2px;
padding:0px;
width:150px;
float:left;
text-align:left;
}
.tdtwo input {
margin-top:0px;
margin-bottom:0px;
width:150px;
}
.tdtwo textarea {
margin-top:0px;
margin-bottom:0px;
width:150px;
}
結果の場合の写真は次のとおりです。
ご覧のとおり、コードは "Matalternativ:" まで正常に動作しますが、その後で奇妙なことが起こります。この理由は、テキストに 2 つの道路が必要なためであることがわかりました。簡単な (しかし非常に醜い) 解決策は、".tdone" と ".tdtwo" の高さを 2 行の高さよりも高くすることですが、あまり良い方法ではありません。
また、overflow プロパティをいじってみましたが、役に立たなかったようです。
これにより、次の 2 つの疑問が生じます。
1: id が必要ないのには理由があります。これは、後で同じ問題が発生する、ここに示されていないコードの部分で役に立たないからです。その特定の要素にIDを付ける以外に、行が高すぎるときに役立つcssプロパティはありますか?
2: ご覧のとおり、ラジオボタンとチェックボックスは、入力する段落の中央に配置されています。「text-align:left;」を試してみました および「Float:left;」違いはありませんでした。段落の左に移動する方法はありますか?
編集:
@tw16 :s answer を追加した後、残りの HTML を追加しました。
<?php for($i=1; $i<4; $i++): ?>
<div class="formarea">
<div class="formimg">Gäst <?php echo $i; ?>:</div>
<div class="formtext">
<p class="inhead">Personuppgifter:</p>
<p class="tdone" id="namespanG<?php echo $i; ?>">Namn</p><p class="tdtwo"><input type="text" name="guest[<?php echo $i; ?>][name]" id="nameG<?php echo $i; ?>" /></p>
<p class="inhead">Matalternativ:</p>
<p class="tdone">Vegetarian (vegan etc. fyll även i detta nedan)</p><p class="tdtwo"><input type="checkbox" name="guest[<?php echo $i; ?>][veg]" value="Ja" /></p>
<p class="tdone">Allergier och andra matpreferenser</p><p class="tdtwo"><textarea name="guest[<?php echo $i; ?>][allergies]" id="allergiesG<?php echo $i; ?>"></textarea></p>
<p class="inhead">Alkoholalternativ:</p>
<p class="tdone">Öl</p><p class="tdtwo"><input type="radio" name="guest[<?php echo $i; ?>][drink]" value="Öl" checked /></p>
<p class="tdone">Cider</p><p class="tdtwo"><input type="radio" name="guest[<?php echo $i; ?>][drink]" value="Cider" /></p>
<p class="tdone">Alkoholfritt</p><p class="tdtwo"><input type="checkbox" name="guest[<?php echo $i; ?>][alcfree]" value="Ja" /></p>
</div>
</div>
<?php endfor; ?>
<div class="pbutton"><input type="submit" value="Anmäl dig" /></div>
結果は「興味深い」でした:
その理由は、「formarea」が完全に満たされていないためだと思いますが、どうすればよいか知っている人はいますか?