Qual é uma boa maneira de superar o infeliz fato de que este código não funcionará como desejado:
<div class="required">
<label>Name:</label>
<input type="text">
</div>
<style>
.required input:after { content:"*"; }
</style>
Em um mundo perfeito, todos os input
s necessários receberiam o pequeno asterisco indicando que o campo é obrigatório. Esta solução é impossível, pois o CSS é inserido após o conteúdo do elemento, não após o próprio elemento, mas algo como isso seria ideal. Em um site com milhares de campos obrigatórios, posso mover o asterisco na frente da entrada com uma alteração em uma linha ( :after
para :before
) ou movê-lo para o final do rótulo ( .required label:after
) ou na frente do rótulo ou para uma posição na caixa contendo, etc ...
Isso é importante não apenas no caso de eu mudar de idéia sobre onde colocar o asterisco em qualquer lugar, mas também em casos estranhos em que o layout do formulário não permite o asterisco na posição padrão. Ele também funciona bem com a validação que verifica o formulário ou destaca os controles preenchidos incorretamente.
Por fim, ele não adiciona marcação adicional.
Existem boas soluções que tenham todas ou a maioria das vantagens do código impossível?
fonte
required
atributo a<input...
developer.mozilla.org/en-US/docs/Web/HTML/Element/input/…Respostas:
É isso que você tinha em mente?
http://jsfiddle.net/erqrN/1/
Mostrar snippet de código
Consulte https://developer.mozilla.org/en-US/docs/Web/CSS/pseudo-elements
fonte
*
mas isso significaria que eu teria que colocar manualmente a distância para cada tamanho de entrada do formulário e não seria capaz de ter nenhuma entrada flexível.Brinque com sua estrutura exata: http://jsfiddle.net/bQ859/
fonte
Embora esta seja a resposta aceita, por favor me ignorar e usar a
:after
sintaxe sugerida abaixo. Minha solução não está acessível.Um resultado semelhante pode ser alcançado usando a imagem de plano de fundo da imagem de um asterisco e definindo o plano de fundo da etiqueta / entrada / div externa e um preenchimento do tamanho da imagem do asterisco. Algo assim:
Isso colocará o asterisco DENTRO da caixa de texto, mas colocar o mesmo em
div.required
vez de.required input
provavelmente será mais o que você está procurando, se um pouco menos elegante.Este método não requer uma entrada adicional.
fonte
Para colocá-lo exatamente na entrada, como é mostrado na imagem a seguir:
Eu encontrei a seguinte abordagem:
O site no qual trabalho é codificado usando o layout fixo, portanto, tudo bem para mim.
Não tenho certeza de que seja bom para o design de líquidos.
fonte
escrever em CSS
e HTML
fonte
<label class="control-label">...</label>
. Mas ele faz o trabalho (Y)fonte
radial-gradient
termosbackground-image
? Não consigo obter essa sintaxe para se casar com developer.mozilla.org/en-US/docs/Web/CSS/radial-gradient, mas está funcionando corretamente quando tento.A imagem possui um espaço de 20 px à direita para não se sobrepor à seta suspensa selecionada
E fica assim:
fonte
Use jQuery e CSS
fonte
Eu acho que essa é a maneira mais eficiente de fazer, por que tanta dor de cabeça
fonte
É 2019 e as respostas anteriores para este problema não estão usando
A grade CSS é a maneira de criar formulários em 2019, pois você pode ter seus rótulos precedendo suas entradas sem ter divs, extensões, extensões com asteriscos e outras relíquias.
Aqui é onde estamos indo com o mínimo de CSS:
O HTML para o acima:
O texto do espaço reservado também pode ser adicionado e é altamente recomendado. (Estou apenas respondendo a este formulário).
Agora, para as variáveis CSS:
O CSS para os elementos do formulário:
O próprio formulário deve estar na grade CSS:
Os valores para as colunas podem ser configurados para
1fr auto
ou1fr
com algo como<p>
tags no formulário definido para estender 1 / -1. Você altera as variáveis nas consultas de mídia para ter as caixas de entrada com largura total no celular e conforme acima no computador. Você também pode alterar sua diferença de grade no celular, se desejar, usando a abordagem de variáveis CSS.Quando as caixas são válidas, você deve obter uma marca verde em vez do asterisco.
O SVG em CSS é uma maneira de evitar que o navegador faça uma ida e volta ao servidor para obter uma imagem do asterisco. Dessa forma, você pode ajustar os asteriscos, os exemplos aqui estão em um ângulo incomum; você pode editar isso porque o ícone SVG acima é totalmente legível. A caixa de visualização também pode ser alterada para colocar o asterisco acima ou abaixo do centro.
fonte
fonte
Este exemplo coloca um símbolo de asterisco na frente de um rótulo para indicar essa entrada específica como um campo obrigatório. Defino as propriedades CSS usando% e em para garantir que minha página da web seja responsiva. Você pode usar px ou outras unidades absolutas, se desejar.
fonte
O que você precisa é: seletor obrigatório - selecionará todos os campos com o atributo 'obrigatório' (portanto, não é necessário adicionar nenhuma classe adicional). Depois, estilize as entradas de acordo com suas necessidades. Você pode usar o seletor ': after' e adicionar asterisco da maneira sugerida entre outras respostas
fonte
Você pode obter o resultado desejado encapsulando o código HTML em uma tag div que contém a classe "required" seguida da classe "form-group". * No entanto, isso funciona apenas se você tiver o Bootstrap.
fonte
Para quem acaba aqui, mas tem o jQuery:
fonte