Mi HTML tiene una clase llamada .required
que se asigna a los campos obligatorios.
Aquí está el HTML:
<form action="/accounts/register/" method="post" role="form" class="form-horizontal">
<input type='hidden' name='csrfmiddlewaretoken' value='brGfMU16YyyG2QEcpLqhb3Zh8AvkYkJt' />
<div class="form-group required">
<label class="col-md-2 control-label">Username</label>
<div class="col-md-4">
<input class="form-control" id="id_username" maxlength="30" name="username" placeholder="Username" required="required" title="" type="text" />
</div>
</div>
<div class="form-group required"><label class="col-md-2 control-label">E-mail</label><div class="col-md-4"><input class="form-control" id="id_email" name="email" placeholder="E-mail" required="required" title="" type="email" /></div></div>
<div class="form-group required"><label class="col-md-2 control-label">Password</label><div class="col-md-4"><input class="form-control" id="id_password1" name="password1" placeholder="Password" required="required" title="" type="password" /></div></div>
<div class="form-group required"><label class="col-md-2 control-label">Password (again)</label><div class="col-md-4"><input class="form-control" id="id_password2" name="password2" placeholder="Password (again)" required="required" title="" type="password" /></div></div>
<div class="form-group required"><label class="col-md-2 control-label">first name</label><div class="col-md-4"><input class="form-control" id="id_first_name" maxlength="30" name="first_name" placeholder="first name" required="required" title="" type="text" /></div></div>
<div class="form-group required"><label class="col-md-2 control-label">last name</label><div class="col-md-4"><input class="form-control" id="id_last_name" maxlength="30" name="last_name" placeholder="last name" required="required" title="" type="text" /></div></div>
<div class="form-group required"><label class="col-md-2 control-label"> </label><div class="col-md-4"><div class="checkbox"><label><input class="" id="id_tos" name="tos" required="required" type="checkbox" /> I have read and agree to the Terms of Service</label></div></div></div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-primary">
<span class="glyphicon glyphicon-star"></span> Sign Me Up!
</button>
</div>
</div>
</form>
Agregué lo siguiente a mi CSS;
.form-group .required .control-label:after {
content:"*";color:red;
}
Aún así, eso no da un rojo *
alrededor de los campos obligatorios. ¿Que me estoy perdiendo aqui? ¿No hay una forma directa en Bootstrap 3 para presentar *
los campos obligatorios?
EDITAR
Los *
términos y condiciones no aparecen inmediatamente en una casilla de verificación. ¿Cómo arreglar esto?
css
forms
twitter-bootstrap-3
form-fields
tormenta cerebral
fuente
fuente
Respuestas:
Usar
.form-group.required
sin el espacio.Editar:Para la casilla de verificación, puede usar la pseudo clase: not (). Agregue el * requerido después de cada etiqueta a menos que sea una casilla de verificación
Nota: no probado
Deberías usar la clase .text o apuntarla de otra manera, probablemente, prueba este html:
Ok tercera edición:
CSS de vuelta a lo que era
HTML:
fuente
bootstrap-theme.css
).::after
. La especulación CSS de nivel 3 está fuera.Asumiendo que así es como se ve el HTML
Para mostrar un asterisco a la derecha de la etiqueta:
O a la izquierda de la etiqueta:
Para hacer un bonito asterisco rojo grande, puede agregar estas líneas:
O si está utilizando Font Awesome, agregue estas líneas (y cambie la línea de contenido):
fuente
top:7px;
causará los problemas si la etiqueta es de varias líneas. Sería mejor reemplazarlo con,margin-top: -4px;
por ejemplo..form-group .required .control-label:after
probablemente debería ser.form-group.required .control-label:after
. La eliminación del espacio entre .form-group y .required es el cambio.fuente
.control-group.required .control-label:after { content:"*"; color:red; }
Las otras dos respuestas son correctas. Cuando incluye espacios en sus selectores CSS, se dirige a elementos secundarios, por lo que:
Está apuntando a un elemento con la clase de "requerido" que está dentro de un elemento con la clase de "grupo de formularios".
Sin el espacio, apunta a un elemento que tiene ambas clases. 'obligatorio' y 'grupo de formulario'
fuente
Este CSS funcionó para mí:
y este HTML:
fuente