Tengo una entrada html.
La entrada tiene padding: 5px 10px;
Quiero que sea el 100% del ancho del div principal (que es fluido).
Sin embargo, el uso width: 100%;
hace que la entrada sea 100% + 20px
¿cómo puedo evitar esto?
html
css
width
fluid-layout
Granizo
fuente
fuente
input
y es compatible con IE7Respuestas:
box-sizing: border-box
es una forma rápida y fácil de solucionarlo:Esto funcionará en todos los navegadores modernos e IE8 +.
Aquí hay una demostración: http://jsfiddle.net/thirtydot/QkmSk/301/
Las versiones prefijadas del navegador (
-webkit-box-sizing
, etc.) no son necesarias en los navegadores modernos.fuente
Es por eso que tenemos
box-sizing
en CSS.He editado su ejemplo, y ahora funciona en Safari, Chrome, Firefox y Opera. Compruébalo: http://jsfiddle.net/mathias/Bupr3/ Todo lo que agregué fue esto:
Lamentablemente, los navegadores antiguos como IE7 no son compatibles con esto. Si está buscando una solución que funcione en viejos IE, consulte las otras respuestas.
fuente
Utilice también el relleno en porcentajes y elimine del ancho:
fuente
Puede hacerlo sin usar
box-sizing
y no soluciones claras comowidth~=99%
.Demo en jsFiddle :
padding
yborder
margin
=border-width
+horizontal padding
padding
igual almargin
del paso anteriorMarcado HTML:
CSS:
fuente
Use css calc ()
Súper simple e impresionante.
Como se ve aquí: ancho de división 100% menos cantidad fija de píxeles
Por webvitaly ( https://stackoverflow.com/users/713523/webvitaly )
Fuente original: http://web-profile.com.ua/css/dev/css -width-100prc-minus-100px /
Acabo de copiar esto aquí, porque casi lo perdí en el otro hilo.
fuente
Suponiendo que estoy en un contenedor con relleno de 15px, esto es lo que siempre uso para la parte interna:
Eso estirará la parte interna a cualquier ancho que sea menor a 15px a cada lado.
fuente
width:auto
aplicado a uninput
campo?Puedes probar algunos trucos de posicionamiento. Puede poner la entrada en un div con
position: relative
y una altura fija, luego en la entrada haveposition: absolute; left: 0; right: 0;
y cualquier relleno que desee.Ejemplo en vivo
fuente
<input>
elementos en Firefox (idk sobre IE). Sin<div>
embargo, funciona con s. Y no,display: block
en el<input>
tampoco funciona: - /Aquí está la recomendación de codeontrack.com , que tiene buenos ejemplos de solución:
fuente
Mueva el relleno del cuadro de entrada a un elemento contenedor.
Ver ejemplo aquí: http://jsfiddle.net/L7wYD/1/
fuente
Solo entienda la diferencia entre ancho: auto; y ancho: 100%; Ancho: auto; calculará (AUTOMÁTICAMENTE) MATICALMENTE el ancho para ajustarse exactamente con el div de envoltura, incluido el relleno. Ancho 100% expande el ancho y agrega el relleno.
fuente
¿Qué hay de envolverlo en un recipiente? El contenedor debe tener un estilo como:
fuente
Prueba esto:
fuente
Para mí, usando
margin:15px;padding:10px 0 15px 23px;width:100%
, el resultado fue este:La solución para mí fue usar en
width:auto
lugar dewidth:100%
. Mi nuevo código fue:margin:15px;padding:10px 0 15px 23px;width:auto
. Entonces el elemento se alineó correctamente:fuente
Tuve el mismo problema. Arreglarlo así:
fuente
Puedes hacerlo:
fuente