En el formulario, tengo un campo de selección y dos de entrada. Estos elementos están alineados verticalmente. Desafortunadamente, no puedo obtener el mismo ancho de estos elementos.
Aquí está mi 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">
Para el ejemplo anterior, el mejor ancho para el elemento seleccionado es 198 o 199 px (por supuesto, probé 193 px, pero la diferencia es importante). Creo que depende de la resolución, en varias computadoras y navegadores, ya que estos elementos no tienen anchos iguales (a veces creo que la diferencia es de aproximadamente 1 o 2 px). Intenté establecer estos elementos en div o filas de tabla, pero no ayuda.
P: ¿Cómo puedo obtener exactamente el mismo ancho de estos elementos?
html
css
html-select
border-box
luk4443
fuente
fuente
Respuestas:
Respuesta actualizada
A continuación se explica cómo cambiar el modelo de caja utilizado por los elementos input / textarea / select para que todos se comporten de la misma manera. Debe utilizar la
box-sizing
propiedad que se implementa con un prefijo para cada navegador.Esto significa que la diferencia de 2px que mencionamos anteriormente no existe.
ejemplo en http://www.jsfiddle.net/gaby/WaxTS/5/
nota: en IE funciona a partir de la versión 8.
Original
si restablece sus bordes , el
select
elemento siempre será 2 píxeles menos que losinput
elementos.ejemplo: http://www.jsfiddle.net/gaby/WaxTS/2/
fuente
Probé la respuesta de Gaby (+1) anterior, pero solo resolvió parcialmente mi problema. En su lugar, utilicé el siguiente CSS, donde content-box se cambió a border-box:
fuente
box-sizing: border-box
. Para una buena implementación universal, considere configurar el elemento html de nivel superior y luego heredar hacia abajo para que pueda anularse fácilmente.Agregue este código en css:
fuente
crea otra clase y aumenta el tamaño con el ejemplo de 2px
fuente