2010-03-24 25 views
21

Nếu đây là cấu trúc:Có tốt không khi đặt   bên trong một ô trống <td>?

<table cellspacing="0" cellpadding="0"> 
    <tr> 
     <td>I don't need anything here, should I always put a &nbsp; here?</td> 
     <td>item </td> 
    </tr> 
    <tr> 
     <td>model</td> 
     <td>one</td> 
    </tr> 
    <tr> 
     <td>model</td> 
     <td>two</td> 
    </tr> 
    <tr> 
     <td>model</td> 
     <td>three</td> 
    </tr> 
</table> 

Làm thế nào một trình đọc màn hình sẽ đọc một trống td? Nó có đúng ngữ nghĩa không?

Trả lời

12

IMHO chính xác về mặt ngữ nghĩa sẽ là giữ ô trống thực sự trống. Tuy nhiên, tôi cũng điền các ô trống với &nbsp; s vì các lý do thực dụng. Đối với người đọc màn hình, tôi sẽ phải thực hiện một phỏng đoán có giáo dục: Các nút trống có thể sẽ không được đọc, bởi vì HTML bao gồm hầu hết các nút văn bản khoảng trắng, mà người đọc bỏ qua và tôi giả định rằng &nbsp; bị thu gọn thành không gian đơn giản trong ứng dụng đọc (kể từ không vi phạm là tài sản của phương tiện trực quan).

Đối với render trực quan, người ta có thể dựa vào bảng CSS tài sản empty-cells:

table { 
    empty-cells: show; 
} 
+2

Tôi nghĩ rằng thuộc tính này không được hỗ trợ trong IE –

+3

Đó là sự thật và lý do tại sao tôi vẫn sử dụng ' ' s, thật không may. – Boldewyn

+2

Theo [MDN] (https://developer.mozilla.org/en-US/docs/Web/CSS/empty-cells), thuộc tính 'ô trống 'có hỗ trợ trong IE 8. –

0

không có bất cứ điều gì chính xác nói rằng bạn không nên sử dụng sử dụng một TD trống, và nó đi khi bạn cố gắng để xác nhận .

Mặc dù, cách tiếp cận trang nhã hơn sẽ là sử dụng colspan.

ví dụ:

<tr> 
    <td colspan="2">item </td> 
</tr> 

Nhưng điều này sẽ sắp xếp nội dung của bạn sang bên trái, và bạn sẽ phải tự (thông qua css) áp dụng phong cách để nội dung được liên kết mà bạn muốn.

Những điều tốt về việc sử dụng nó với colspans, là trình đọc màn hình sẽ chỉ đọc những gì ở đó, và không phải là khoảng trống

+4

'colspan' không cần thiết thanh lịch hoặc ngữ nghĩa hơn. 'colspan' nói hiệu quả, rằng giá trị của ô bảng là sự kết hợp hợp lệ các giá trị thường thuộc về hai ô khác nhau. Trong trường hợp trên: Nếu hàng đầu tiên là một tiêu đề, thì 'colspan' sẽ cho kết quả hoàn toàn sai (tức là nội dung ô được đánh dấu là nhãn cho * cả hai * cột). – Boldewyn

2

Nhờ biên tập viên như Dreamweaver thực tế điều này đã trở thành phần nào của một tiêu chuẩn, vì vậy ngay cả nếu nó là không phải là một giải pháp hoàn hảo - ít nhất bạn sẽ không đơn độc trong việc thực hiện nó. Thêm vào đó, nó tương thích hơn với trình duyệt cũ hơn so với empty-cells của CSS.

4

Ngữ nghĩa, một bảng HTML thực sự chỉ là một mảng (ma trận) dữ liệu, và không có lý do tại sao một ký tự khoảng trắng không thể được coi là dữ liệu. Cho dù nó thực sự có ý nghĩa phụ thuộc vào mục đích, cấu trúc và nội dung của bảng. Trong hầu hết các trường hợp, có một giải pháp tốt hơn. Xem một số gợi ý trong số Empty cells in HTML tables.

Về mặt kỹ thuật, không gian trống có chiều rộng và chiều cao, tùy thuộc vào phông chữ và điều này áp đặt các yêu cầu tối thiểu về kích thước của ô. Điều này có thể quan trọng, mặc dù chủ yếu là trong trường hợp hàng hoặc cột được sử dụng giống như dấu tách, ví dụ: để tạo đường ngang hoặc dọc.

Tác động khác của việc sử dụng khoảng trống, ngược lại với việc sử dụng khoảng trống bình thường hoặc để trống ô, có thể ảnh hưởng đến sự xuất hiện của đường viền xung quanh ô và màu nền và hình nền bên trong ô.

Trình đọc màn hình khác với cách chúng biểu thị các ô trống, nếu có, và điều này cũng có thể phụ thuộc vào chế độ đọc. Trong bất kỳ trường hợp nào, người dùng sẽ không có chỉ dẫn về những gì đang thực sự xảy ra, tức là một ô trống (nếu trống được chuyển tới người dùng) có nghĩa là gì. Trong trình duyệt trực quan, ý nghĩa có thể (hoặc có thể không) khá rõ ràng.

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