フィールドセットのデフォルトはコンテナの幅100%のようです。フィールドセットをフィールドセット内の最も広いコントロールと同じ大きさにする方法はありますか?
回答:
を使用しdisplay: inline-block
ますが、実際にインラインで表示されないようにするには、DIV内でラップする必要があります。Safariでテスト済み。
<style type="text/css">
.fieldset-auto-width {
display: inline-block;
}
</style>
<div>
<fieldset class="fieldset-auto-width">
<legend>Blah</legend>
...
</fieldset>
</div>
display: inline-block;
参考:iE6とIE7では動作しません。あなたがそれらを気にする必要がなければあなたを幸せにします。:)
fieldset {display:inline}
または fieldset {display:inline-block}
2つのフィールドセットを垂直方向に分離する場合は<br/>
、それらの間に1つを使用します。これは意味的に正しく、必要以上に難しいことではありません。
これも機能します。
fieldset {
width:0px;
}
いつでもCSSを使用してフィールドセットの幅を制限できます。これにより、内部のコントロールも制限されます。
select
コントロールの幅を制限しなければならないことがよくあります。そうしないと、オプションのテキストが非常に長くなり、完全に管理できなくなります。
fieldset {
min-width: 0;
max-width: 100%;
width: 100%;
}
凡例スタイルを以下のようにオーバーライドして問題を修正しました
.ui-fieldset-legend
{
font-size: 1.2em;
font-weight: bold;
display: inline-block;
width: auto;`enter code here`
}
Mihaiソリューションをさらに進めて、クロスブラウザを左揃えにします。
<TABLE>
<TR>
<TD>
<FORM>
<FIELDSET>
...
</FIELDSET>
</FORM>
</TD>
</TR>
</TABLE>
クロスブラウザは右揃え:
<TABLE>
<TR>
<TD WIDTH=100%></TD>
<TD>
<FORM>
<FIELDSET>
...
</FIELDSET>
</FORM>
</TD>
</TR>
</TABLE>
<table style="position: relative; top: -0px; left: 0px;">
<tr>
<td>
<div>
<fieldset style="width:0px">
<legend>A legend</legend>
<br/>
<table cellspacing="0" align="left">
<tbody>
<tr>
<td align='left' style="white-space: nowrap;">
</td>
</tr>
</tbody>
</table>
</fieldset>
</div>
</td>
</tr>
</table>