2012-06-18 42 views
13

tengo que hacer esto:¿Cómo ocultar parte de la imagen?

si la imagen tiene una altura mayor de 100px a continuación, ocultar el resto de la imagen (ejemplo: imagen con altura de 80px -> mostrar la imagen con la altura de 150 píxeles llena de imágenes, -> Mostrar solo los primeros 100px).

¿Hay alguna manera de hacerlo con CSS?

Respuesta

17

Puede usar la propiedad max-height para especificar la altura máxima de la imagen, y luego usar overflow: hidden; para ocultar cualquier otra cosa.

p. Ej.

HTML:

<div class="image-container"> 
    <img src="some-image.jpg" /> 
</div> 

CSS:

.image-container { 
    max-height:100px; 
    overflow:hidden; 
} 

jsFiddle muestra: http://jsfiddle.net/3jA9q/

EDITAR

para Internet Explorer 6, puede utilizar CSS expressions emular someth ing similar:

.image-container { 
    height:expression(this.scrollHeight<100?"auto":"100px"); 
    overflow:hidden; 
} 

Sin embargo, tenga en cuenta que esto requiere que el usuario tenga JavaScript habilitado en su navegador. Sin embargo, mi experiencia con las expresiones CSS ha sido bastante pobre, y es mejor evitarlas.

+0

max-height no funciona en Internet Explorer :( – xRobot

+2

@xRobot Lo hace a partir de IE7 https: // desarrollador .mozilla.org/es/CSS/max-height # Browser_compatibility –

+0

Usted es la única alternativa con Internet Explorer 6 y antes sería usar 'height' como dijo @Jcubed. –

3

ponerlo en un div con una altura de 100 píxeles y ajuste overflow: hidden;

6

usted puede hacerlo utilizando un combnation de max-height y overflow.

HTML:

<div> 
    <img> 
</div> 

CSS:

div{ 
    max-height:100px; 
    overflow:hidden; 
} 

También tenga en cuenta que max-height no funciona en los navegadores antiguos, pero si se ha utilizado la normalidad luego height imágenes nunca podría ser más corto que sea 100px.

+0

pero si utilizo la altura, las imágenes con una altura de 50px se distorsionarán. – xRobot

+0

Estaba hablando sobre el uso de la altura en el div, no en el img. Una imagen de 50px de alto en un div 100px no se distorsionará, sino que simplemente tendrá un espacio de 50px después de ella. –

+0

@xRobot - Deberían estar bien, ya que está configurando el tamaño de la div del contenedor, no la imagen en sí. Sin embargo, tendrá grandes huecos debajo de la imagen, lo cual es indeseable, pero posiblemente no deseable con ... navegadores antiguos. –

Cuestiones relacionadas