2012-01-17 28 views
9

Tôi đã nội dung sau đây tôi cần phải đánh dấu lên:Bảng hai cột hoặc dl?

yêu cầu khóa học:

course requirements

ngày:

dates

Câu hỏi đặt ra là liệu sử dụng hai cộtPhần tửhoặc phần tử dl (description list). Tôi muốn có câu trả lời cho từng trường hợp cụ thể và sau đó phản hồi nói chung là nếu có thể. Tôi luôn gặp sự cố khi quyết định các yếu tố này, đặc biệt nếu table không có (hoặc cần) tiêu đề.

Lưu ý: Câu hỏi của tôi là không phải cách tôi nên tạo kiểu cho các yếu tố này. Tôi sẽ đến buổi thuyết trình sau khi tôi quyết định về ngữ nghĩa.

CHỈNH SỬA: Các câu trả lời tuân thủ bản nháp HTML5 được ưu tiên hơn các câu trả lời tuân thủ đề xuất HTML4 cũ.

Trả lời

0

Tôi sẽ sử dụng bảng hai cột vì bạn không định nghĩa bất kỳ thứ gì trong hai ví dụ của mình (bạn đang hiển thị thông tin về khóa: giá trị loại). Thẻ dl (trong thuật ngữ ngữ nghĩa) được sử dụng cho các định nghĩa độc quyền hoặc mô tả. Ví dụ: một số người nhận xét mã của họ bằng cách sử dụng các thẻ <dl>.

Khi cố gắng để chọn bạn có thể nói với chính mình: không "này" (ví dụ Cohort #) có nghĩa là "này" (10 Tháng 2)

-1

Bạn có thể sử dụng một kiểu UL với với cố định label + dữ liệu của bạn.

2

Những bảng này trông giống như tôi. Một dl được sử dụng như là tên, giá trị cặp danh sách nơi mỗi tên có thể có một hoặc nhiều giá trị. Tôi không nghĩ rằng bạn có thể đặt một mối tương quan giữa nhiều nhóm ví dụ

<dl> 
<dt>Class</dt> 
<dd>Cohort Teaching</dd> 
<dd>My other Class</dd> 
<dt>Points</dt> 
<dd>10</dd> 
<dd>20</dd> 
</dl> 

Không có gì trong specification mà chỉ ra rằng Cohort giảng dạy có liên quan đến 10 điểm là. Mỗi nhóm là khép kín.

Ít nhất tôi sẽ không đánh dấu nó bằng cách sử dụng DL như tôi đã làm. Tôi sẽ sử dụng một cái bàn.

+0

Vâng, tôi đồng ý bằng một 'dl' không có mối tương quan giữa một' dd' trong một nhóm và một 'dd' trong một nhóm khác. tương quan duy nhất có sẵn là giữa 'dt' và một' dd' sau. Vì vậy, tôi sẽ đồng ý rằng người ta không nên đánh dấu nội dung bằng cách sử dụng một 'dl' theo cách mà bạn đã làm trong ví dụ của bạn. Tuy nhiên, người ta có thể đặt từng mục nhập vào "cột bên trái" trong cột "dt' và ditto" bên phải trong 'dd'. Ví dụ: '

Giảng dạy theo nhóm
10 pts
'vv Cách này tương quan sẽ được làm rõ ràng. – chharvey

6

Phần tử bảng phù hợp nhất với nhu cầu của bạn, về ngữ nghĩa.

W3C tuyên bố rằng yếu tố table "allows authors to arrange data -- text, preformatted text, images, links, forms, form fields, other tables, etc. -- into rows and columns of cells", đó chính xác là cách bạn định dạng ví dụ của mình.

W3C tuyên bố rằng thẻ dl dành cho các danh sách "consist of two parts: a term and a description". Vì "10 điểm." không phải là mô tả thuật ngữ "Dạy học thuần tập", đây không phải là yếu tố thích hợp để sử dụng.

+2

Không thực sự là một dl là hoàn hảo. Từ spec bạn liên kết nó cũng nói 'Một ứng dụng khác của DL, ví dụ, là để đánh dấu các cuộc đối thoại, với mỗi DT đặt tên một loa, và mỗi DD chứa các từ của mình.' Và trong HTML5, chúng được gọi là danh sách mô tả hỗ trợ thêm http://www.w3.org/TR/html-markup/dl này.html – Alistair

+0

@Alistair, Đúng là bạn có thể sử dụng thẻ 'dl' cho mục đích này, nhưng ngữ nghĩa nó không chính xác. Đánh dấu các đối thoại (như bạn đã tham chiếu) tương tự như một nhóm mô tả cụm từ trong đó có một nhóm đối thoại tên, tuy nhiên OP không quan tâm đến đối thoại và mô tả một Mục lục được cấu trúc trong một hàng x cột thiết kế , hoàn toàn phù hợp cho một 'bảng'. Bạn cũng sẽ kết thúc quá trình tạo kiểu 'dl' ở cuối để làm cho nó trông giống như một' bảng'. –

+0

Tôi vẫn chưa quyết định về hai. Xem các ví dụ mã trong [tài liệu HTML5 trên phần tử dl] (http://www.w3.org/html/wg/drafts/html/master/grouping-content.html#the-dl-element). Nó không chỉ dành riêng cho các cặp mô tả thuật ngữ. – chharvey

14

Quy tắc chung: nếu bạn có thể đặt tiêu đề trên phiên bản bảng, cần không phải là là danh sách định nghĩa.

Quy tắc chung khác: Nếu bạn có thể không phải đặt tiêu đề trên phiên bản bảng, nó phải là danh sách định nghĩa.

Đó là vì danh sách tốt nên không có ý nghĩa như bảng và ngược lại. Dưới đây là một ví dụ về những gì một danh sách định nghĩa tốt trông giống như:

Chiều cao
180cm
Trọng lượng
180kg
Telephone
555-5555
123-4567

Khi chúng tôi cố gắng chuyển đổi bảng này thành một bảng mà chúng tôi nhận được ...

 
Terms   Definitions 
------------------------ 
Height  180cm 
Weight  180kg 
Telephones 555-5555 
       123-4567 

Nhìn vào các tiêu đề cột; nó chỉ là "thuật ngữ" và "định nghĩa"!

Chiều cao, cân nặng và điện thoại là những điều hoàn toàn khác với các định nghĩa hoàn toàn khác nhau gắn liền với chúng. Trường hợp trên thế giới làm 555-5555 và 180cm thuộc về cùng một cột? Không có nghĩa lý gì!

Tuy nhiên, đôi khi bạn nhìn thấy bảng như thế này

 
Height  | 180cm 
Weight  | 180kg 
Telephones | 555-5555 
       | 123-4567 

Không có ngữ và định nghĩa như tiêu đề, các tiêu đề của các tế bào được giả định là trên cột đầu tiên. IMHO khi bạn có một bảng giống như bạn đang sử dụng bảng sai và bạn nên sử dụng một danh sách định nghĩa để thay thế. Đối với một bảng được chính đáng, nó phải có nhiều hàng và mỗi ô của mỗi hàng có thể được xác định bởi các tiêu đề cột của nó.

Something như thế này ví dụ:

 
Name Height Weight 
------------------------ 
John 180cm  180kg 
Jack 170cm  155kg 

John và Jack là tên. Chiều cao 180cm và 170cm. 180kg và 155kg là trọng lượng. Bạn có một mối quan hệ quan trọng của các tế bào với các hàng và cột của chúng, và bạn không thể đặt nó trong một danh sách định nghĩa mà không cắt đứt mối quan hệ quan trọng đó. Vì vậy, trong trường hợp này một bảng nên được sử dụng.

TL; DR: Bảng hai cột trong câu hỏi của bạn có thể có tiêu đề. Vì vậy, nó phải là một bảng.

Xem:

 
Class       Required Points 
--------------------------------------------- 
Cohort Teaching    10 pts. 
Cohort Research and Report 20 pts. 
+0

Hãy cẩn thận với danh sách định nghĩa nếu trang web muốn truy cập được (mọi trang web nên;)). Có vấn đề với trình đọc màn hình, xem https://snook.ca/archives/html_and_css/definition-lists-v-tables –

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