2010-06-01 37 views
8

có thể ai đó xin vui lòng giải thích cho tôi tại sao có một DOCTYPE củahtml doctype thêm khoảng trắng?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN">

làm cho khối sau cách khác nhau dưới firefox?

<table style="border-collapse:collapse; margin:0; padding:0;"> 
    <tr> 
     <td style="border:1px solid red; margin:0; padding:0;"><img src="http://images.smh.com.au/2010/06/01/1533814/th_park-90x60.jpg" style="border:none; padding:0; margin:0;" /></td> 
    </tr> 
</table> 

sử dụng 'Chuyển tiếp', không có khoảng trắng bên dưới hình ảnh, sử dụng 'Nghiêm ngặt'!

Câu hỏi thứ hai, sử dụng nghiêm ngặt, có thể xóa bỏ khoảng trắng này không?

+0

Có bất kỳ khoảng trống ẩn nào trong tệp của bạn không? (Giống như dấu cách ở cuối dòng?) – John

+0

không có khoảng trống ẩn. – pstanton

Trả lời

14

Như bạn có thể thấy trong this table, chế độ quirks Doctype triggers đầu tiên trong tất cả các trình duyệt, second sẽ kích hoạt chế độ tiêu chuẩn.

Phần còn lại của câu chuyện này là tiếp tục ở Images, Tables, and Mysterious Gaps:

Setting images to be blocks

Sự lựa chọn đầu tiên, và một trong đó sẽ làm việc cho thiết kế hầu hết các đồ họa-mãnh liệt, là để chuyển đổi hình ảnh từ là phần tử nội tuyến cho phần tử cấp khối . Làm điều đó, và nó không còn tạo ra một hộp, và do đó vấn đề biến mất - giả sử rằng hình ảnh là điều duy nhất mà chiếm được ô bảng đó. Trong trường hợp đơn giản nhất, chúng ta có thể thêm một phong cách như thế này:

td img {display: block;} 
+0

Tôi cũng tìm thấy bài viết đó. 1 để được nhanh hơn. :) – edl

+0

vì vậy giải pháp là để thêm 'hiển thị: khối;' trên hình ảnh .. sửa đổi câu trả lời và tôi sẽ cung cấp cho đánh dấu! – pstanton

1

Nghi ngờ của tôi là khoảng trắng trong đánh dấu (ví dụ: các dòng mới và các tab làm cho mã bảng dễ đọc) có lỗi. Tôi đã gặp phải các vấn đề tương tự trước đây, nơi không gian trong đánh dấu dẫn đến không gian gây phiền nhiễu trên màn hình, ngay cả khi nó xuất hiện không quan trọng (ví dụ: giữa các thẻ <li>).

Thử thu gọn đánh dấu bảng thành một dòng dài.

+0

không, tôi đã thử nghiệm điều này mà không có khoảng trống nào.như thể trình kết xuất thêm khoảng trắng khi sử dụng loại tài liệu nghiêm ngặt. – pstanton

0

Không chắc chắn lý do xảy ra không gian. Theo như một sửa chữa đi, nếu bạn không nhớ một cách rõ ràng thiết lập chiều cao cho ô bảng của bạn, bạn có thể thêm display: block; và chiều cao: 60px; với phong cách td của bạn.

0

Các DOCTYPE đầu tiên sẽ làm cho trang web của bạn trong almost standards mode:

"Hầu như các tiêu chuẩn" chế độ render trận "tiêu chuẩn" ở tất cả các chi tiết ngoại trừ một. Cách bố trí hình ảnh bên trong ô bảng được xử lý theo cùng một cách "chế độ quirks" hoạt động.

DOCTYPE thứ hai sẽ hiển thị trang của bạn ở chế độ tiêu chuẩn.

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