2011-05-21 8 views
16

Si se ha formulado esta pregunta, me disculpo, pero no pude encontrar la misma pregunta. Como dice W3schools, ¡La propiedad de altura no incluye relleno, bordes o márgenes!(link). Así que aquí es una simple declaración de estilo:Relleno de CSS agregado a alto/ancho para <input type = 'submit'>

input { 
    width:180px; 
    height:18px; 
    padding:7px; 
    border:1px solid black; 
} 

y aquí está html:

<input type='text' name='text' value='194px by 32px' /><br /> 
<input type='submit' name='button' id='button' value='180px by 18px' /> 

El campo de texto es 194px por 32px como se esperaba, pero el botón de envío es 180px por 18px. Obviamente, puedo aumentar la altura del ancho del botón & dos veces el relleno, pero quiero entender por qué hay una discrepancia. Hice un jsfiddle aquí: http://jsfiddle.net/RRf5A/. Gracias por tu ayuda. FYI, ya intenté <button> en lugar de enviar entrada, y display:inline-block.

+0

Firefox y Safari normalmente no muestran relleno en los botones estándar, por lo que si está utilizando uno de esos navegadores, el relleno no se aplicará. Creo que Internet Explorer aplica algún efecto del relleno (no estoy seguro si funciona perfectamente) –

+0

@jqueryrocks, el jsfiddle tiene el mismo aspecto en IE7, IE8, Safari y Firefox, por lo que no es un problema de IE al menos ;-) – yitwail

+1

No todos los w3schools dicen que son correctos. ¿Por qué? Véalo aquí [w3fools] (http://w3fools.com/) Para ayudarlo a comprender mejor la altura/ancho. Véalo [aquí] (http://www.w3.org/TR/CSS21/box.html) – ace

Respuesta

12

Puede solucionar esto agregando box-sizing: content-box; para ingresar elementos del tipo enviar. En lugar de entrar en detalles, solo te enviaré al http://www.quirksmode.org/css/box.html. Sin embargo, actualmente no es compatible en general, por lo que es mejor que la compatibilidad entre navegadores declare específicamente diferentes alturas y rellenos para los botones de envío.

+1

gracias por el enlace intersting. – yitwail

Cuestiones relacionadas