2011-04-15 10 views
53

¿Cómo se podría crear una regla CSS para anchura queCSS 100% o MAX-anchura en píxeles

  • Usos ancho de 100% por defecto

  • Si el 100% anchura excede cierto ancho de píxel (digamos 512 píxeles), entonces el ancho se sujeta a este píxel de anchura

no estoy seguro acerca de las relaciones anchura y max-width, o la forma en que se apoya calc() o podía expresar esto. Esto necesitaría trabajar con los últimos navegadores WebKit y Firefox 4. Compatibilidad con IE8 etc. no necesaria

Respuesta

89

De hecho, es el uso previsto de max-width. Si el width calculado (real) de un elemento excede max-width, estará restringido al valor máximo en lugar de ir más allá. El porcentaje frente a los píxeles no es relevante.

Declare tanto en la misma regla como este (no es necesario para la función calc()):

#somediv { 
    width: 100%; 
    max-width: 512px; 
} 
+2

Eso no funciona si sus imágenes son de hecho más pequeñas que 512px y no desea escalarlas hasta 512px. –

+0

¿Puedo hacer otra pregunta, hay alguna diferencia para establecerlo como '#somediv {ancho: 512px; max-width: 100%} '? – leetom

+0

@hugoderhungrige 512px es solo un número de ejemplo utilizado en esta pregunta. En el caso en que no desee que sus imágenes escalen más allá de su tamaño real, simplemente establecerá su ancho máximo en el ancho real de la imagen. –

3

Si es elemento de bloque que debe ser 100% por defecto, así no hay necesidad de declarar la anchura, entonces max-width: 512px; restringiría que

calc() no se admite muy bien a todos, pero en este caso no se me ocurriría lo que se necesita es

2
div{ max-width: 512px; } 

debería ser suficiente.

+1

¿cómo resolvería eso el 100% cuando el div es más pequeño que 512? ¿La imagen no solo se quedaría 512 y no se reduciría con el tamaño del div? – Jon