Cuál es una buena manera de superar el hecho desafortunado de que este código no funcionará como se desea:
<div class="required">
<label>Name:</label>
<input type="text">
</div>
<style>
.required input:after { content:"*"; }
</style>
En un mundo perfecto, todos los input
s requeridos obtendrían el pequeño asterisco que indica que el campo es requerido. Esta solución es imposible ya que el CSS se inserta después del contenido del elemento, no después del elemento en sí, pero algo así sería ideal. En un sitio con miles de campos obligatorios, puedo mover el asterisco delante de la entrada con un cambio a una línea ( :after
a :before
) o puedo moverlo al final de la etiqueta ( .required label:after
) o delante de la etiqueta, o a una posición en la caja que contiene, etc.
Esto es importante no solo en caso de que cambie de opinión sobre dónde colocar el asterisco en todas partes, sino también en casos extraños donde el diseño del formulario no permite el asterisco en la posición estándar. También funciona bien con la validación que verifica el formulario o resalta los controles completados incorrectamente.
Por último, no agrega marcas adicionales.
¿Hay alguna buena solución que tenga todas o la mayoría de las ventajas del código imposible?
fuente
required
atributo a<input...
developer.mozilla.org/en-US/docs/Web/HTML/Element/input/…Respuestas:
¿Eso es lo que tenías en mente?
http://jsfiddle.net/erqrN/1/
Mostrar fragmento de código
Ver https://developer.mozilla.org/en-US/docs/Web/CSS/pseudo-elements
fuente
*
pero significaría que tendría que poner manualmente la distancia para cada entrada de formulario, y no podría tener ninguna entrada flexible.Juega con tu estructura exacta: http://jsfiddle.net/bQ859/
fuente
A pesar de que esta es la respuesta aceptada, por favor, hacer caso omiso de mí y utilizar la
:after
sintaxis se sugiere a continuación. Mi solución no es accesible.Se podría lograr un resultado similar utilizando una imagen de fondo de una imagen de un asterisco y estableciendo el fondo de la etiqueta / entrada / div externo y un relleno del tamaño de la imagen de asterisco. Algo como esto:
Esto colocará el asterisco DENTRO del cuadro de texto, pero colocar el mismo en
div.required
lugar de.required input
probablemente sea más lo que está buscando, aunque sea un poco menos elegante.Este método no requiere una entrada adicional.
fuente
Para ponerlo exactamente EN la entrada como se muestra en la siguiente imagen:
Encontré el siguiente enfoque:
El sitio en el que trabajo está codificado usando un diseño fijo, así que estaba bien para mí.
No estoy seguro de que sea bueno para el diseño líquido.
fuente
escribir en CSS
y HTML
fuente
<label class="control-label">...</label>
. Pero hace el trabajo (Y)fuente
radial-gradient
términos enbackground-image
? No puedo obtener esta sintaxis para casarme con developer.mozilla.org/en-US/docs/Web/CSS/radial-gradient, pero funciona correctamente cuando lo intento.La imagen tiene un espacio de 20 píxeles a la derecha para no superponerse con la flecha desplegable de selección
Y se ve así:
fuente
Use jQuery y CSS
fuente
Creo que esta es la manera eficiente de hacerlo, ¿por qué tanto dolor de cabeza?
fuente
Es 2019 y las respuestas anteriores a este problema no están utilizando
La cuadrícula CSS es la forma de hacer formularios en 2019, ya que puede tener sus etiquetas precediendo a sus entradas sin tener divs, tramos, tramos con asteriscos y otras reliquias adicionales.
Aquí es donde vamos con CSS mínimo:
El HTML para lo anterior:
El texto de marcador de posición también se puede agregar y es muy recomendable. (Solo estoy respondiendo esta forma intermedia).
Ahora para las variables CSS:
El CSS para los elementos del formulario:
El formulario en sí debe estar en la cuadrícula CSS:
Los valores para las columnas se pueden establecer en
1fr auto
o1fr
con cualquier cosa, como<p>
etiquetas en el formulario configurado para abarcar 1 / -1. Cambia las variables en sus consultas de medios para que tenga los cuadros de entrada de ancho completo en dispositivos móviles y según lo anterior en el escritorio. También puede cambiar la brecha de la cuadrícula en el móvil si lo desea utilizando el enfoque de variables CSS.Cuando las casillas son válidas, debería aparecer una marca verde en lugar del asterisco.
El SVG en CSS es una forma de evitar que el navegador tenga que hacer un viaje de ida y vuelta al servidor para obtener una imagen del asterisco. De esta manera, puede ajustar los asteriscos, los ejemplos aquí están en un ángulo inusual, puede editar esto ya que el ícono SVG anterior es completamente legible. El cuadro de vista también se puede modificar para colocar el asterisco encima o debajo del centro.
fuente
fuente
Este ejemplo pone un símbolo de asterisco delante de una etiqueta para denotar esa entrada particular como un campo obligatorio. Configuré las propiedades CSS usando% y em para asegurarme de que mi página web responde. Puede usar px u otras unidades absolutas si lo desea.
fuente
Lo que necesita es: selector requerido: seleccionará todos los campos con el atributo 'requerido' (por lo que no es necesario agregar clases adicionales). Luego, diseñe las entradas según sus necesidades. Puede usar el selector ': después' y agregar un asterisco en la forma sugerida entre otras respuestas
fuente
Puede lograr el resultado deseado encapsulando el código HTML en una etiqueta div que contiene la clase "requerida" seguida de la clase "grupo de formularios". * Sin embargo, esto solo funciona si tiene Bootstrap.
fuente
Para aquellos que terminan aquí, pero tienen jQuery:
fuente