No formulário, tenho um campo de seleção e dois campos de entrada. Esses elementos são alinhados verticalmente. Infelizmente, não consigo obter a largura igual desses elementos.
Este é o meu código:
<select name="name1" style="width:198px">
<option>value1</option>
<option>value2</option>
</select><br/>
<input type="text" name="id1" style="width:193px"><br/>
<input type="text" name="id2" style="width:193px">
Por exemplo, a melhor largura para o elemento selecionado é 198 ou 199 px (é claro que tentei 193 px, mas a diferença é grande). Acho que depende da resolução, em vários computadores e navegadores já que esses elementos não têm larguras iguais (às vezes acho que a diferença é de cerca de 1 ou 2 px). Tentei definir esses elementos em div ou linhas de tabela, mas não ajudou.
P: Como posso obter larguras precisamente iguais desses elementos?
html
css
html-select
border-box
luk4443
fonte
fonte
Respostas:
Resposta atualizada
Aqui está como alterar o modelo de caixa usado pelos elementos input / textarea / select para que todos se comportem da mesma maneira. Você precisa usar a
box-sizing
propriedade que é implementada com um prefixo para cada navegadorIsso significa que a diferença de 2 pixels mencionada anteriormente não existe.
exemplo em http://www.jsfiddle.net/gaby/WaxTS/5/
nota: no IE funciona a partir da versão 8 e superior.
Original
se você redefinir suas bordas , o
select
elemento sempre será 2 pixels a menos do que osinput
elementos.exemplo: http://www.jsfiddle.net/gaby/WaxTS/2/
fonte
Tentei a resposta de Gaby (+1) acima, mas só parcialmente resolveu meu problema. Em vez disso, usei o seguinte CSS, onde content-box foi alterado para border-box:
fonte
box-sizing: border-box
. Para uma boa implementação universal, considere definir o elemento html de nível superior e, em seguida, herdar para baixo para que possa ser facilmente substituído.Adicione este código em css:
fonte
crie outra classe e aumente com o tamanho com exemplo de 2px
fonte