Es scheint, dass die Feldmenge standardmäßig 100% der Breite ihres Containers beträgt. Gibt es eine Möglichkeit, dass das Feld so groß sein kann wie das breiteste Steuerelement innerhalb des Feldsatzes?
80
Verwenden display: inline-block
Sie diese Option, obwohl Sie sie in einen DIV einwickeln müssen, damit sie nicht tatsächlich inline angezeigt wird. In Safari getestet.
<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;
Ihrer Information : Funktioniert nicht in iE6 und IE7. Glücklich, wenn Sie sich nicht um sie kümmern müssen. :)fieldset {display:inline}
oderfieldset {display:inline-block}
Wenn Sie zwei Feldsätze vertikal trennen möchten, verwenden Sie ein einzelnes
<br/>
zwischen ihnen. Dies ist semantisch korrekt und nicht schwieriger als es sein muss.quelle
Sie könnten es schweben lassen, dann ist es nur so breit wie sein Inhalt, aber Sie müssen sicherstellen, dass Sie diese Schwimmer löschen.
quelle
Das funktioniert auch.
fieldset { width:0px; }
quelle
Leider funktioniert
display:inline-block
noch nichtwidth:0px
in Internet Explorer bis Version 8. Ich habe Internet Explorer 9 noch nicht ausprobiert. So sehr ich Internet Explorer ignorieren möchte, kann ich es nicht.Die einzige Option, die unter Firefox und Internet Explorer 8 funktioniert, ist
float:left
. Der einzige kleine Nachteil ist, dass Sie daran denken müssen,clear:both
das Element zu verwenden, das dem Formular folgt. Natürlich wird es sehr offensichtlich sein, wenn Sie vergessen ;-)quelle
Sie können jederzeit CSS verwenden, um die Breite des Feldsatzes einzuschränken, wodurch auch die darin enthaltenen Steuerelemente eingeschränkt werden.
Ich finde, dass ich oft die Breite der
select
Steuerelemente einschränken muss , sonst macht es wirklich langer Optionstext völlig unüberschaubar.quelle
fieldset { min-width: 0; max-width: 100%; width: 100%; }
quelle
Versuche dies
<fieldset> <legend style="max-width: max-content;" >Blah</legend> </fieldset>
quelle
Ich habe mein Problem behoben, indem ich den Legendenstil wie folgt überschrieben habe
.ui-fieldset-legend { font-size: 1.2em; font-weight: bold; display: inline-block; width: auto;`enter code here` }
quelle
Wenn Sie die Mihai-Lösung weiter verfolgen, ist der Browser linksbündig ausgerichtet:
<TABLE> <TR> <TD> <FORM> <FIELDSET> ... </FIELDSET> </FORM> </TD> </TR> </TABLE>
Browserübergreifend rechtsbündig:
<TABLE> <TR> <TD WIDTH=100%></TD> <TD> <FORM> <FIELDSET> ... </FIELDSET> </FORM> </TD> </TR> </TABLE>
quelle
<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>
quelle
Sie können das Feldset auch wie folgt in eine Tabelle einfügen:
<table> <tr> <td> <fieldset> ....... </fieldset> </td> </tr> </table>
quelle