Ich verwende Bootstrap für meine JSP
Seite.
Ich möchte <fieldset>
und <legend>
für mein Formular verwenden. Das ist mein Code.
<fieldset class="scheduler-border">
<legend class="scheduler-border">Start Time</legend>
<div class="control-group">
<label class="control-label input-label" for="startTime">Start :</label>
<div class="controls bootstrap-timepicker">
<input type="text" class="datetime" id="startTime" name="startTime" placeholder="Start Time" />
<i class="icon-time"></i>
</div>
</div>
</fieldset>
CSS ist
fieldset.scheduler-border {
border: 1px groove #ddd !important;
padding: 0 1.4em 1.4em 1.4em !important;
margin: 0 0 1.5em 0 !important;
-webkit-box-shadow: 0px 0px 0px 0px #000;
box-shadow: 0px 0px 0px 0px #000;
}
legend.scheduler-border {
font-size: 1.2em !important;
font-weight: bold !important;
text-align: left !important;
}
Ich bekomme eine solche Ausgabe
Ich möchte die Ausgabe folgendermaßen
Ich habe versucht hinzuzufügen
border:none;
width:100px;
um legend.scheduler-border
in CSS. Und ich bekomme die erwartete Ausgabe. Das Problem ist jedoch, dass ich <fieldset>
für andere Felder ein weiteres hinzufügen möchte . Diesmal ist die Breite des Textes in der Legende ein Problem, da er länger als ist 100px
.
Was soll ich also tun, um eine Ausgabe zu erhalten, wie ich sie erwähnt habe? (Ohne den Legendentext zu streichen)
html
css
forms
twitter-bootstrap
Shiju K Babu
quelle
quelle
Antworten:
Dies liegt daran, dass Bootstrap standardmäßig die Breite des
legend
Elements auf 100% festlegt . Sie können dies beheben, indem Sie Ihre ändern,legend.scheduler-border
um auch Folgendes zu verwenden:JSFiddle-Beispiel .
Sie müssen auch sicherstellen, dass Ihr benutzerdefiniertes Stylesheet nach dem Bootstrap hinzugefügt wird, um zu verhindern, dass Bootstrap Ihr Styling überschreibt - obwohl Ihre Styles hier eine höhere Spezifität aufweisen sollten.
Möglicherweise möchten Sie auch hinzufügen
margin-bottom:0;
, um die Lücke zwischen der Legende und dem Teiler zu verringern.quelle
margin-bottom: 20px;
auf gesetztlegend
, wodurch es über den Feldsatzrand geschoben wurde, anstatt es auf die Linie zu setzen. Das Einstellen desmargin-bottom: 0;
benutzerdefiniertenlegend.scheduler-border
Fixes ist so einfach.In Bootstrap 4 ist es viel einfacher, einen Rand auf dem Feldsatz zu haben, der mit der Legende verschmilzt. Sie benötigen kein benutzerdefiniertes CSS, um dies zu erreichen. Dies kann folgendermaßen erfolgen:
das sieht so aus:
quelle
Ich hatte dieses Problem und löste es folgendermaßen:
quelle
Ich hatte einen anderen Ansatz und benutzte das Bootstrap-Panel, um es etwas reicher zu zeigen. Nur um jemandem zu helfen und die Antwort zu verbessern.
Dies wird unten einen Blick geben.
Hinweis: Wir müssen die Stile ändern, um unterschiedliche Headergrößen zu verwenden.
quelle
Ich wollte nur alle richtigen Antworten oben kurz zusammenfassen. Weil ich viel Zeit aufwenden musste, um herauszufinden, welche Antwort das Problem löst und was sich hinter den Kulissen abspielt.
Es scheint zwei Probleme mit Fieldset mit Bootstrap zu geben:
bootstrap
setzt die Breite auflegend
100%. Deshalb überlagert es den oberen Rand desfieldset
.bottom border
für dielegend
.Um dies zu beheben, müssen Sie die Legendenbreite wie folgt auf auto setzen:
quelle