'Is there any way to have a fieldset width only be as wide as the controls in them?
It seems that fieldset defaults to 100% width of its container. Is there any way that you can have the field set just be as big as the widest control inside the fieldset?
Solution 1:[1]
fieldset {display:inline} or fieldset {display:inline-block}
If you want to separate two fieldsets vertically, use a single <br/> between them. This is semantically correct and no harder than it has to be.
Solution 2:[2]
You could float it, then it will only be as wide as its contents, but you'll have to make sure you clear those floats.
Solution 3:[3]
This also works.
fieldset {
width:0px;
}
Solution 4:[4]
Unfortunately neither display:inline-block nor width:0px works in Internet Explorer up to version 8. I have not tried Internet Explorer 9. Much as I would like to ignore Internet Explorer, I can't.
The only option that works on Firefox and Internet Explorer 8 is float:left. The only slight drawback is that you have to remember to use clear:both on the element that follows the form. Of course, it will be very obvious if you forget ;-)
Solution 5:[5]
You can always use CSS to constrain the width of the fieldset, which would also constrain the controls inside.
I find that I often have to constrain the width of select controls, or else really long option text will make it totally unmanageable.
Solution 6:[6]
fieldset {
min-width: 0;
max-width: 100%;
width: 100%;
}
Solution 7:[7]
try this
<fieldset>
<legend style="max-width: max-content;" >Blah</legend>
</fieldset>
Solution 8:[8]
i fixed my issue by override legend style as Below
.ui-fieldset-legend
{
font-size: 1.2em;
font-weight: bold;
display: inline-block;
width: auto;`enter code here`
}
Solution 9:[9]
Going further of Mihai solution, cross-browser left aligned:
<TABLE>
<TR>
<TD>
<FORM>
<FIELDSET>
...
</FIELDSET>
</FORM>
</TD>
</TR>
</TABLE>
Cross-browser right aligned:
<TABLE>
<TR>
<TD WIDTH=100%></TD>
<TD>
<FORM>
<FIELDSET>
...
</FIELDSET>
</FORM>
</TD>
</TR>
</TABLE>
Solution 10:[10]
<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>
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
