Eu tenho um formulário com botões de opção que estão na mesma linha de seus rótulos. Os botões de opção, entretanto, não estão alinhados verticalmente com seus rótulos, conforme mostrado na captura de tela abaixo.
Como posso alinhar verticalmente os botões de opção com seus rótulos?
Editar:
Aqui está o código html:
<input checked="checked" type="radio" name="user_level" id="rd1" value="1"/>
<label for="rd1">radio 1</label><br/>
<input type="radio" name="user_level" id="rd2" value="2"/>
<label for="rd2">radio 2</label><br/>
<input type="radio" name="user_level" id="rd3" value="3"/>
<label for="rd3">radio 3</label><br/>
E o código css:
label{
padding:5px;
color:#222;
font-family:corbel,sans-serif;
font-size: 14px;
margin: 10px;
}
Respostas:
Experimente isto:
fonte
height= 100%;
já que meu elemento pai não definiu explicitamente a altura.Coloque aula para todos os rádios. Isso funcionará para todos os botões de opção na página html.
Violino
fonte
Sei que selecionei a resposta de menuka devinda, mas olhando os comentários abaixo concordei e tentei encontrar uma solução melhor. Consegui pensar nisso e, na minha opinião, é uma solução muito mais elegante:
Obrigado a todos que responderam, sua resposta não passou despercebida. Se você ainda tiver outras idéias, sinta-se à vontade para adicionar sua própria resposta a esta pergunta.
fonte
tente adicionar
vertical-align:top
ao cssTeste: http://jsfiddle.net/muthkum/heAWP/
fonte
font-size
, tente usardisplay:flex
. Aqui está uma demonstração, jsfiddle.net/et8z47q5Pode muito bem adicionar um pouco de flexibilidade às respostas.
fonte
Você pode fazer assim:
DEMOfonte
Algo assim deve funcionar
CSS:
fonte
Estou apenas alinhando o ponto médio vertical das caixas com a linha de base da caixa pai mais metade da altura x (en.wikipedia.org/wiki/X-height) do pai.
fonte
Muitas dessas respostas dizem para usar
vertical-align: middle;
, o que aproxima o alinhamento, mas para mim ainda está errado por alguns pixels. O método que usei para obter o verdadeiro alinhamento 1 para 1 entre os rótulos e as entradas de rádio é este, comvertical-align: top;
:fonte
Eu gosto de colocar as entradas dentro dos rótulos (bônus adicional: agora você não precisa do
for
atributo no rótulo) e colocarvertical-align: middle
a entrada.(Isso
-2px margin-top
é uma questão de gosto.)Outra opção que gosto muito é usar uma mesa. (Segure seus pitch forks! É muito bom!) Isso significa que você precisa adicionar o
for
atributo a todos os seus rótulos eid
s às suas entradas. Eu recomendei essa opção para rótulos com conteúdo de texto longo, em várias linhas.fonte
Embora eu concorde que as tabelas não devem ser usadas para layouts de design, ao contrário da crença popular, elas passam na validação. ou seja, a tag da tabela não está obsoleta. A melhor maneira de alinhar os botões de opção é usando o CSS do meio de alinhamento vertical com as margens ajustadas nos elementos de entrada.
fonte
Adicionar
display:inline-block
rótulos e dar a elespadding-top
resolveria isso, eu acho. Além disso, apenas definirline-height
nos rótulos também faria.fonte
Existem várias maneiras, uma que eu preferiria é usar uma tabela em html. você pode adicionar uma tabela de duas colunas e três linhas e colocar os botões de opção e a etiqueta.
fonte
.tablecell{dispay:table-cell;} ... <div class="tablecell">
parece mais uma solução alternativa para pessoas que não querem admitir que estão usando tabelas ...