2012-01-17 16 views
9

Ho il seguente contenuto ho bisogno di marcare:tabella a due colonne o dl?

requisiti del corso:

course requirements

e date:

dates

La questione è se utilizzare una colonna a due colonneElementoo elemento dl (description list). Vorrei una risposta per ogni istanza specifica e quindi una risposta in generale se possibile. Ho sempre avuto problemi a decidere su questi elementi, specialmente se lo table non ha (o ha bisogno) intestazioni.

Nota: la mia domanda è non come dovrei stile questi elementi. Arriverò alla presentazione dopo aver deciso sulla semantica.

MODIFICA: le risposte che aderiscono alla bozza HTML5 sono preferite rispetto alle risposte che rispettano il vecchio consiglio HTML4.

risposta

0

Vorrei utilizzare una tabella a due colonne poiché non si sta definendo nulla nei due esempi (si sta visualizzando la chiave: informazioni sul tipo di valore). Il tag dl (in termini di semantica) viene utilizzato esclusivamente per definizioni o descrizioni. Ad esempio, alcune persone commentano il loro codice utilizzando i tag dl >.

Quando si cerca di scegliere si può dire a te stesso: fa "questo" (ad esempio coorte #) significa "questo" (10 febbraio)

-1

si potrebbe usare un stile UL con un con fisso label + vostri dati.

2

Questi sembrano tavoli per me. Un dl viene utilizzato come nome, elenco di coppie di valori in cui ogni nome può avere uno o più valori. Non credo che è possibile inserire una correlazione tra più gruppi, per esempio

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

Non c'è nulla nel specification che indica che Cohort L'insegnamento è legato ai 10 punti. Ogni gruppo è autonomo.

Per lo meno non l'avrei contrassegnato utilizzando DL come ho fatto. Vorrei usare un tavolo.

+0

Sì, sono d'accordo in un 'dl' non esiste una correlazione tra un' dd' in un gruppo e di un 'dd' in un altro gruppo. l'unica correlazione disponibile è tra un 'dt' e un successivo' dd'. Quindi sarei d'accordo sul fatto che non si dovrebbe marcare il contenuto usando un 'dl' nel modo in cui hai fatto nel tuo esempio. Tuttavia, si potrebbe essere in grado di inserire ciascuna voce nella "colonna sinistra" in un 'dt' e idem" colonna destra "in' dd'. Per esempio '

Insegnamento di coorte
10 punti
' ecc. In questo modo la correlazione sarebbe resa esplicita. – chharvey

6

L'elemento del tavolo si adatta meglio alle vostre esigenze, in termini di semantica.

W3C indica che l'elemento table "allows authors to arrange data -- text, preformatted text, images, links, forms, form fields, other tables, etc. -- into rows and columns of cells", esattamente come è stato formattato l'esempio.

Il W3C indica che il tag dl è per gli elenchi che "consist of two parts: a term and a description". Poiché "10 punti". non è la descrizione del termine "Insegnamento di coorte", questo non è l'elemento corretto da usare.

+2

No effettivamente un dl è perfetto. Dalla specifica che si collega si legge anche "Un'altra applicazione di DL, ad esempio, è per la marcatura dei dialoghi, con ogni DT che nomina un altoparlante e ogni DD contenente le sue parole." E in HTML5 sono chiamati elenchi di descrizioni che supportano ulteriormente questo http://www.w3.org/TR/html-markup/dl.html – Alistair

+0

@Alistair, è vero che puoi usare il tag 'dl' per questo scopo, ma semanticamente non è corretto. Marcare i dialoghi (come hai fatto riferimento) è simile a un raggruppamento di descrizione di termini in quanto esiste un raggruppamento di nomi-dialogo, tuttavia l'OP non è interessato al dialogo e sta descrivendo un sommario strutturato in una riga x design di colonne , perfetto per un 'tavolo'. Dovresti anche finire di sovrapporre il 'dl' alla fine per renderlo simile a un' table'. –

+0

Sono ancora indeciso sui due. Guarda gli esempi di codice in [i documenti HTML5 sull'elemento dl] (http://www.w3.org/html/wg/drafts/html/master/grouping-content.html#the-dl-element). Non è riservato solo per le coppie termine-descrizione. – chharvey

14

Regola generale: se è possibile inserire un'intestazione nella versione tabella, è necessario non essere un elenco di definizioni.

Un'altra regola empirica: se è possibile non inserire un'intestazione nella versione tabella, dovrebbe essere un elenco di definizioni.

Ecco perché una buona lista non ha senso come tabella e viceversa. Ecco un esempio di ciò che una buona lista di definizioni assomiglia:

Altezza
180 centimetri
Peso
180kg
Telefono
555-5555
123-4567

Quando proviamo a convertire questo in un tavolo che otteniamo ...

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

Controllare le intestazioni di colonna; sono solo "termini" e "definizioni"!

Altezza, peso e telefono sono cose completamente diverse con definizioni completamente diverse allegate. In quale parte del mondo 555-5555 e 180 cm appartengono alla stessa colonna? Non ha senso!

Tuttavia, a volte si vede tabelle come questo

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

Non ci sono termini e definizioni come intestazione, le intestazioni delle celle vengono considerati sulla prima colonna. IMHO quando hai una tabella come quella stai usando le tabelle sbagliate e dovresti usare invece una lista di definizioni. Perché una tabella sia giustificabile deve avere più righe e ogni cella di ogni riga può essere definita dalle intestazioni della sua colonna.

Qualcosa di simile, per esempio:

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

John e Jack sono nomi. 180 cm e 170 cm sono altezze. 180 kg e 155 kg sono pesi. Hai una relazione importante di celle con le loro righe e colonne e non puoi inserirla in un elenco di definizioni senza interrompere quella relazione importante. Quindi in questo caso dovrebbe essere usato un tavolo.

TL; DR: La tabella di due colonne nella domanda può avere intestazioni. Quindi dovrebbe essere un tavolo.

See:

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

Fai attenzione agli elenchi di definizioni se il sito web vuole essere accessibile (ogni sito web dovrebbe;)). Ci sono problemi con gli screen reader, vedi https://snook.ca/archives/html_and_css/definition-lists-v-tables –

Problemi correlati