2012-04-22 48 views
5

sự cố CSS/HTML.Hình ảnh sẽ không lấp đầy div

Điều này thật điên rồ - tôi chỉ có thể giả định rằng tôi là kẻ ngốc. Tôi không thể làm cho hình ảnh của tôi điền vào div nó được in. Có luôn là 5px "padding" bên dưới hình ảnh.

Đây là html:

<!doctype html> 

<head><link rel="stylesheet" href="style.css" type="text/css" /></head> 

<body> 
<div class="row"> 
<img src="pic2.jpg" /> 
</div> 
</body> 

Và đây là CSS:

body, .row, img { 
padding: 0; 
margin: 0; 
border: none; 
} 

.row { 
width: 80%; 
background-color: orange; 
} 

img{ 
width: 50%; 
} 

Đây là kết quả:

http://imgur.com/yELMe

Như bạn có thể thấy, (ngu ngốc) hình ảnh màu xanh và đỏ không điền vào div màu da cam. Có màu cam hiển thị 5px phù hợp bên dưới hình ảnh. Điều này không bị ảnh hưởng bởi các thay đổi về độ rộng% của div hoặc hình ảnh hoặc bằng cách thay đổi kích thước cửa sổ.

Tôi có thể sửa lỗi này bằng "lề: -5px;", nhưng tôi muốn biết tại sao nó xảy ra (đặc biệt nếu trong các trường hợp khác nhau, số tiền nhiều hơn hoặc ít hơn 5px).

Cảm ơn sự giúp đỡ của bạn (và xin lỗi một lần nữa nếu đây là một lỗi vô lý về phía tôi).

+0

Dưới đây là một ví dụ sống http://jsfiddle.net/aDtUm/ – jacktheripper

Trả lời

17

Thêm một giá trị vertical-align (khác với mặc định baseline) để hình ảnh của bạn như: top, middle ...

vertical-align: top; 
+0

Đó là tuyệt vời - tại sao nó lại hoạt động? – jkdune

+1

Có một 'vi phạm' với trang tự nhiên nổi cho hình ảnh nội tuyến (không được thả nổi), chúng bắt đầu tôn trọng các không gian phần tử được cung cấp cho kiểu chữ như cỡ chữ, chiều cao dòng và khác. Bạn có thể dễ dàng kiểm tra điều đó (trong bản demo không hoạt động): chỉ cần thêm phần thân {font-size: 50px;} và bạn sẽ thấy khoảng cách lề sẽ tăng lên như thế nào. Bằng cách đặt căn chỉnh theo chiều dọc thành hình ảnh, chúng tôi đảm bảo cung cấp vị trí khác với mặc định của trình duyệt. –

+0

Phải, tôi hiểu rồi. Tôi chưa bao giờ làm việc đó. Cảm ơn một lần nữa vì sự giúp đỡ của bạn! – jkdune

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