Bootstrapを使用して基準フォームを作成しています。fieldset
一部のフォーム フィールドには、チェックボックスまたはラジオ オプションが含まれているため、アテンダントlegend
を採用して、オプションをカテゴリに関連付けたいと思います。
以前にこれを聞いたことがある場合は止めてください。しかし、IE7 のフォームのスタイル設定に問題があります。具体的には:
- は
legend
改行が発生するようですので、 - ラジオ ボタン (またはチェックボックス) を右側の列に "とどめる" ことができないようです。
この画像は、最初の行 (赤いボックス) の「悪い」レイアウトと、2 行目 (緑のボックス) で実現しようとしているレイアウトを示しています。
HTMLに行きましょう:
<form name="form_search" id="form_search" action="acrq_results.html" method="post" class="form-horizontal">
<fieldset>
<legend>Regular legend not classed `.control-label`</legend>
<div id="div_search_type" class="control-group">
<fieldset>
<legend class="control-label">With fieldset and legend.control-label</legend>
<div class="controls">
<label for="p_search_type1" class="radio inline span2"><input type="radio" name="p_search_type" id="p_search_type1" value="both" checked="checked" />Option 1</label>
<label for="p_search_type2" class="radio inline span2"><input type="radio" name="p_search_type" id="p_search_type2" value="passport_only"/>Option 2</label>
<label for="p_search_type3" class="radio inline span2"><input type="radio" name="p_search_type" id="p_search_type3" value="crba_only" />Option 3</label>
</div>
</fieldset>
</div>
<div id="div_other_reason" class="control-group">
<label class="control-label">no fieldset or legend</label>
<div class="controls">
<label for="p_search_type1" class="radio inline span2"><input type="radio" name="p_search_type" id="p_search_type1" value="both" checked="checked" />Option 1</label>
<label for="p_search_type2" class="radio inline span2"><input type="radio" name="p_search_type" id="p_search_type2" value="passport_only"/>Option 2</label>
<label for="p_search_type3" class="radio inline span2"><input type="radio" name="p_search_type" id="p_search_type3" value="crba_only" />Option 3</label>
</div>
</div>
</fieldset>
</form>
Bootstrap に付属するものを補完するために、これらの CSS ルールを追加しました (ただし、うまくいきません)。
legend.control-label, legend.control-label > span {
border-bottom: 0;
color: #000;
cursor: pointer;
display:inline-block;
float:left;
*display:inline;
*float:none;
font-size: 14px;
font-weight: normal;
line-height: 20px;
margin-bottom: 5px;
}
これらすべてをhttp://jsfiddle.net/jhfrench/zTAHh/の JSFiddle にまとめました。繰り返しますが、これは IE7 に関する問題です。それはChromeでうまく見えます。