2012-08-28 18 views
19

Actualmente estoy usando twitter bootstrap, que está funcionando muy bien, pero me gustaría agregar una leyenda a los elementos "bien" que se usan en un formulario (para que pueda tener múltiples pozos, que denota subsecciones en un formulario).Bootstrap - Añadiendo leyenda al pozo

Un ejemplo de lo que mi forma se parece ahora es:

enter image description here

Me gustaría añadir una leyenda de modo que pueda tener dos secciones separadas por debajo de la "Detalles" la partida, por ejemplo, pero ser capaz de denotar para qué son. Una leyenda parece la mejor manera de hacer esto.

La sección correspondiente del HTML se parece a:

<form> 
    <div class="row"> 
     <div class="span6"> 
     <div class="nonboxy-widget"> 
      <div class="widget-head"> 
       <h5>Details</h5> 
      </div> 
      <div class="widget-content"> 
       <div class="widget-box"> 
        <div class = 'form-horizontal well'> 
         <fieldset> 
          <div class="control-group"> 
           <label class="control-label">Sale Type</label> 
           <div class="controls"> 

Cuando intento agregar una etiqueta de leyenda ya sea al conjunto de campos o la div con la clase form-horizontal well se hace como una partida en el interior de la caja, no como una leyenda html normal. Se hace así:

enter image description here

con el código

<div class = 'form-horizontal well'> 
    <fieldset> 
    <legend>Details</legend> 
    <div class="control-group"> 

¿Alguien puede recomendar una manera de conseguir que esto rinde como una leyenda normal, en la frontera de la caja?

EDIT: Gracias al código de Simbirsk, ahora tengo:

enter image description here

Esto es bastante estrecha, pero lo que quería era tener la leyenda vea como una leyenda html normal, en un conjunto de campos (es decir, para que se asiente en la frontera), así que cambié el CSS a:

legend { 
padding: 0; 
margin-left: 10px; 
margin-bottom: -9px; 
border: 0; 
color: #999999; 
background-color: #333333; 
} 

pero que resultó en esto:

enter image description here

¿Cómo puedo asegurarme de que el borde del pozo "se rompe" (no se muestra detrás del texto) como una leyenda de campo de campo normal?

EDIT 2: Después de la edición de la primera respuesta, que aplica el código a mi css y terminó con:

enter image description here

se dará cuenta de esto no es exactamente lo que estaba buscando - I Estoy tratando de obtener la leyenda en el borde del pozo div, no en el fieldset en sí (porque esta es una forma anidada, podría haber múltiples conjuntos de campo dentro de un pozo, por lo que no puedo poner el borde en el fieldset mismo).

Parece que lo logré con el código anterior, el único problema fue poner un corte en el borde donde está la leyenda: ¿puede hacerse esto con algún tipo de opacidad en el fondo del texto de la leyenda, y un poco de relleno?

¿Alguna otra sugerencia?

Gracias!

+0

leyenda se utilizará junto con Fieldset, si desea crear sub-ssections de su contra, se podrá utilizar conjuntos de campos con su correspondiente leyenda. Su formulario también se incluirá dentro de

etiquetas y no divs. Si desea modificar el estilo de la leyenda de acuerdo con sus deseos, cree una ID para ella y declare un estilo para ella. –

+0

Gracias por su comentario: mi formulario tiene

etiquetas, pero no eran relevantes para la representación de la leyenda, por lo que no las mostré en el código. Editaré para evitar confusiones. Mi pregunta es específicamente cómo crear un estilo que permita que se muestre en el borde del cuadro. ¿Puede ayudarme? –

Respuesta

40

Ponga el .well en el fieldset y anule los estilos legend y fieldset de Bootstrap.
HTML

<form> 
    <fieldset class="well the-fieldset"> 
     <legend class="the-legend">Your legend</legend> 
     ... your inputs ... 
    </fieldset> 
</form> 

CSS

.the-legend { 
    border-style: none; 
    border-width: 0; 
    font-size: 14px; 
    line-height: 20px; 
    margin-bottom: 0; 
} 
.the-fieldset { 
    border: 2px groove threedface #444; 
    -webkit-box-shadow: 0px 0px 0px 0px #000; 
      box-shadow: 0px 0px 0px 0px #000; 
} 

NOTA: He oitirán clases Bootstrap como filas, luces, controles, etc. utilizarlos para adaptarse a su diseño.
EDITAR: Cambió el código para incluir fieldset estilos "restablecer".

+0

Gracias por su respuesta. He actualizado la pregunta con los resultados, podría requerir un pequeño refinamiento. –

+0

Actualizado para recuperar el comportamiento del borde del conjunto de campos estándar – albertedevigo

+0

Gracias de nuevo. He realizado otra edición después de su edición. –

2

Esto funcionó para mí en lo que estaba tratando de lograr como una caja de grupo en Bootstrap.

fieldset { 
 
    min-width: 0; 
 
    padding: 0; 
 
    margin: 0; 
 
    border: 0; 
 
} 
 
.well { 
 
    min-height: 20px; 
 
    padding: 19px; 
 
    margin-bottom: 20px; 
 
    background-color: #f5f5f5; 
 
    border: 1px solid #e3e3e3; 
 
    border-radius: 4px; 
 
    -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05); 
 
    box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05); 
 
} 
 
.well-legend { 
 
    display: block; 
 
    font-size: 14px; 
 
    width: auto; 
 
    padding: 2px 7px 2px 5px; 
 
    margin-bottom: 20px; 
 
    line-height: inherit; 
 
    color: #333; 
 
    background: #fff; 
 
    border: 1px solid #e3e3e3; 
 
    border-radius: 4px; 
 
    box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05); 
 
    -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05); 
 
}
<form> 
 
    <fieldset class="well"> 
 
    <legend class="well-legend">Group Box Legend</legend> 
 
    ... your inputs ... 
 
    </fieldset> 
 
</form>

Cuestiones relacionadas