Estoy usando Bootstrap para mi JSP
página.
Quiero usar <fieldset>
y <legend>
para mi forma. Este es mi codigo.
<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 es
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;
}
Estoy obteniendo resultados como este
Quiero salida de la siguiente manera
Traté de agregar
border:none;
width:100px;
a legend.scheduler-border
en CSS. Y estoy obteniendo el resultado esperado. Pero el problema es que me gustaría agregar otro <fieldset>
para otros campos. Esa vez, el ancho del texto en la leyenda es un problema, ya que es más largo que 100px
.
Entonces, ¿qué debo hacer para obtener resultados como he mencionado? (Sin golpear el texto de la leyenda)
html
css
forms
twitter-bootstrap
Shiju K Babu
fuente
fuente
Respuestas:
Esto se debe a que Bootstrap establece de manera predeterminada el ancho del
legend
elemento al 100%. Puede solucionar esto cambiando sulegend.scheduler-border
para usar también:JSFiddle ejemplo .
También deberá asegurarse de que su hoja de estilo personalizada se agregue después de Bootstrap para evitar que Bootstrap anule su estilo, aunque sus estilos aquí deberían tener una mayor especificidad.
También es posible que desee agregarle
margin-bottom:0;
también para reducir la brecha entre la leyenda y el divisor.fuente
margin-bottom: 20px;
en ellegend
, que lo empujó por encima del borde del conjunto de campos, en lugar de colocarlo en la línea. Establecer elmargin-bottom: 0;
en la costumbrelegend.scheduler-border
arreglado que fácilmente.En Bootstrap 4 es mucho más fácil tener un borde en el conjunto de campos que se mezcle con la leyenda. No necesita CSS personalizado para lograrlo, se puede hacer así:
que se ve así:
fuente
Tuve este problema y lo resolví de esta manera:
fuente
Tenía un enfoque diferente, utilicé el panel de arranque para mostrarlo un poco más rico. Solo para ayudar a alguien y mejorar la respuesta.
Esto le dará un vistazo a continuación.
Nota: Necesitamos cambiar los estilos para usar diferentes tamaños de encabezado.
fuente
Solo quería resumir todas las respuestas correctas en breve. Porque tuve que pasar mucho tiempo para determinar qué respuesta resuelve el problema y qué está sucediendo detrás de escena.
Parece haber dos problemas de campo con bootstrap:
bootstrap
define la anchura a lalegend
como 100%. Es por eso que se superpone al borde superior de lafieldset
.bottom border
para ellegend
.Entonces, todo lo que necesitamos para solucionar esto es establecer el ancho de la leyenda en automático de la siguiente manera:
fuente