J'utilise Bootstrap pour ma JSP
page.
Je veux utiliser <fieldset>
et <legend>
pour mon formulaire. Ceci est mon 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 est
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;
}
Je reçois une sortie comme celle-ci
Je veux une sortie de la manière suivante
J'ai essayé d'ajouter
border:none;
width:100px;
à legend.scheduler-border
en CSS. Et j'obtiens la sortie attendue. Mais le problème est que je voudrais en ajouter un autre <fieldset>
pour un autre champ. Cette fois, la largeur du texte dans la légende est un problème car elle est plus longue que 100px
.
Alors, que dois-je faire pour obtenir une sortie comme je l'ai mentionné? (Sans frapper le texte de la légende)
html
css
forms
twitter-bootstrap
Shiju K Babu
la source
la source
Réponses:
En effet, Bootstrap définit par défaut la largeur de l'
legend
élément sur 100%. Vous pouvez résoudre ce problème en modifiant votrelegend.scheduler-border
pour utiliser également:Exemple JSFiddle .
Vous devrez également vous assurer que votre feuille de style personnalisée est ajoutée après Bootstrap pour empêcher Bootstrap de remplacer votre style - bien que vos styles ici devraient avoir une spécificité plus élevée.
Vous pouvez également y ajouter des éléments
margin-bottom:0;
pour réduire l’écart entre la légende et le séparateur.la source
margin-bottom: 20px;
sur lelegend
, qui l'a poussé au-dessus de la bordure du jeu de champs, au lieu de le placer sur la ligne. La configurationmargin-bottom: 0;
de la personnalisation a étélegend.scheduler-border
corrigée facilement.Dans bootstrap 4, il est beaucoup plus facile d'avoir une bordure sur le jeu de champs qui se confond avec la légende. Vous n'avez pas besoin de css personnalisé pour y parvenir, cela peut être fait comme ceci:
qui ressemble à ceci:
la source
J'ai eu ce problème et je l'ai résolu de cette façon:
la source
J'ai eu une approche différente, utilisé le panneau de bootstrap pour le montrer un peu plus riche. Juste pour aider quelqu'un et améliorer la réponse.
Cela donnera le look ci-dessous.
Remarque: nous devons changer les styles afin d'utiliser une taille d'en-tête différente.
la source
Je voulais juste résumer toutes les bonnes réponses ci-dessus en bref. Parce que j'ai dû passer beaucoup de temps à déterminer quelle réponse résout le problème et ce qui se passe dans les coulisses.
Il semble y avoir deux problèmes de fieldset avec bootstrap:
bootstrap
définit la largeur àlegend
100%. C'est pourquoi il recouvre la bordure supérieure dufieldset
.bottom border
pour lelegend
.Donc, tout ce dont nous avons besoin pour résoudre ce problème est de définir la largeur de la légende sur auto comme suit:
la source