2012-06-18 11 views
13

Ho bisogno di fare questo:Come nascondere parte dell'immagine?

se l'immagine ha un'altezza maggiore di 100px poi nascondere il resto dell'immagine (esempio: un'immagine con un'altezza di 80px -> mostra l'immagine, un'immagine con un'altezza di 150px -> show solo il primo 100 px).

C'è un modo per farlo con i CSS?

risposta

17

È possibile utilizzare la proprietà max-height per specificare l'altezza massima dell'immagine, quindi utilizzare overflow: hidden; per nascondere qualsiasi altra cosa.

ad es.

HTML:

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

CSS:

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

JSFiddle Esempio: http://jsfiddle.net/3jA9q/

EDIT

per Internet Explorer 6, è possibile utilizzare per emulare CSS expressions someth ing simile:

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

Do atto, tuttavia, che questo richiede che l'utente un JavaScript nel browser. La mia esperienza con le espressioni CSS tuttavia è stata piuttosto scarsa, e sono meglio evitati.

+0

max-height non funziona in internet explorer :( – xRobot

+2

@xRobot Funziona a partire da IE7 https: // developer .mozilla.org/it/CSS/max-height # Browser_compatibility –

+0

Sei solo alternativa con internet explorer 6 e precedenti sarebbe usare 'height' come dice @Jcubed –

3

metterlo in un div con un'altezza di 100px e impostare overflow: hidden;

6

è possibile farlo utilizzando una combnation di max-height e overflow.

HTML:

<div> 
    <img> 
</div> 

CSS:

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

Si noti inoltre che max-height non funziona nei browser meno recenti, ma se si è utilizzato il normale height poi le immagini non potrebbe mai essere inferiore a 100px neanche.

+0

ma se utilizzo l'altezza, le immagini con altezza di 50 px saranno distorte. – xRobot

+0

Stavo parlando di usare l'altezza sul div, non l'img. Un'immagine alta 50 px in un div 100px non sarà distorta, ma avrà semplicemente un gap di 50px dopo di essa. –

+0

@xRobot - Dovrebbero andare bene, dato che stai impostando la dimensione del div del wrapper, non l'immagine stessa. Avrete comunque grandi lacune sotto l'immagine, il che è indesiderabile, ma probabilmente indesiderabile con ... i browser più vecchi. –