2012-06-18 55 views
13

Tôi cần thực hiện việc này:Cách ẩn một phần của hình ảnh?

nếu hình ảnh có chiều cao cao hơn 100px rồi ẩn phần còn lại của hình ảnh (ví dụ: hình ảnh có chiều cao 80px -> hiển thị hình ảnh đầy đủ, hình ảnh có chiều cao 150px -> hiển thị chỉ 100px đầu tiên).

Có cách nào để làm điều đó với CSS không?

Trả lời

17

Bạn có thể sử dụng thuộc tính max-height để chỉ định chiều cao tối đa của hình ảnh, sau đó sử dụng overflow: hidden; để ẩn bất kỳ thứ gì khác.

ví dụ:

HTML:

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

CSS:

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

JSFiddle mẫu: http://jsfiddle.net/3jA9q/

EDIT

cho Internet Explorer 6, bạn có thể sử dụng CSS expressions bắt chước someth ing tương tự:

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

Tuy nhiên, lưu ý rằng điều này yêu cầu người dùng phải bật JavaScript trong trình duyệt của họ. Tuy nhiên, kinh nghiệm của tôi với các biểu thức CSS khá kém và tốt nhất nên tránh chúng.

+0

tối đa chiều cao không hoạt động trên internet explorer :( – xRobot

+2

@xRobot Nó bắt đầu với IE7 https: // developer .mozilla.org/vi/CSS/max-height # Browser_compatibility –

+0

Bạn chỉ thay thế bằng trình duyệt Internet 6 và cũ hơn sẽ sử dụng 'height' như @Jcubed đã nói. –

3

Đặt nó trong một div với chiều cao 100px và thiết lập overflow: hidden;

6

Bạn có thể làm điều đó bằng cách sử dụng combnation của max-heightoverflow.

HTML:

<div> 
    <img> 
</div> 

CSS:

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

Cũng lưu ý rằng max-height không hoạt động trong các trình duyệt cũ, nhưng nếu bạn sử dụng bình thường height sau đó hình ảnh không bao giờ có thể là ngắn hơn 100px một trong hai.

+0

nhưng nếu tôi sử dụng chiều cao thì ảnh có chiều cao là 50px sẽ bị méo. – xRobot

+0

Tôi đã nói về việc sử dụng chiều cao trên div, không phải là img. Hình ảnh cao 50px trong div 100px sẽ không bị méo, nhưng chỉ đơn giản sẽ có khoảng cách 50px sau nó. –

+0

@ xRobot - Chúng sẽ ổn, vì bạn đang đặt kích thước của div bao bọc chứ không phải chính hình ảnh đó. Tuy nhiên, bạn sẽ có những khoảng trống lớn dưới hình ảnh, điều không mong muốn, nhưng có thể không mong muốn với ... các trình duyệt cũ hơn. –

Các vấn đề liên quan