哪些优势有定义列表(<dd><dt>
等...)以及什么时候应该使用它?
(例如:在Zend_Form中使用,但我不明白为什么)
是否存在其他更好的选择?
(我是初学者,但它看起来像是在HTML中使用xml。 如果我对XML最近没有广泛使用,因为yaml,file.ini,json在他们的字段中每个都更有效地解析然后xml格式。)
由于
答案 0 :(得分:5)
答案 1 :(得分:2)
在HTML中,每次需要带有定义的单词列表时,都必须使用<dl/>
。实际上,定义列表用于简单列表(无序<ul/>
或有序<ol/>
)不够的情况。
例如,您要显示要下载的文件列表。每个文件都有一个图标,一个名称,一个大小和一个下载按钮。
首先,您可以将所有内容都放在<table/>
中。这就是十年之前所做的事情,当时CSS没有像今天这样集中使用,而且内容和演示之间的分离也不太清楚。
然后,您可以将所有内容放在<div/>
中:<div/>
中的每个文件,<div/>
中的每个文件名等等。问题在于代码会更长,更容易理解,更难维护。
然后,您可能希望在<ul/>
内放置大量<div/>
个内容。这类似于(2。)
最后,您可以使用定义列表。优点是缩小了HTML代码的大小,并且代码更易于维护。顺便提一下,可访问性将会增加:禁用CSS后,您的页面仍然可读(而对于嵌入式<div/>
,用户将很难理解它是一个文件列表。)
答案 2 :(得分:2)
所有 HTML标记看起来都像XML。那是因为XML和HTML都与SGML密切相关。 XML只是一种比HTML更通用和“可扩展”的标记语言。
考虑到XHTML,RSS,ATOM,RDF,EPUB,XMPP,Microformats,ODF,SOAP等都是基于XML的,我很难说XML“没有被广泛使用”。它在一般用途中比YAML,JSON或ini文件更受欢迎 - 在任何情况下都不是文档标记语言。
因此,HTML标签类似于XML的事实是避免使用特定标签或标签集的一个非常愚蠢的理由。应根据内容的语义结构选择标记,而不是在完全不相关的数据序列化应用程序中XML的普及。
当您需要表示定义列表时,可以使用DL
。也就是说,只要你有一些语义结构:
term: definition
term: definition
term: definition
...
严格地说,定义列表应该仅用于定义词汇表中的术语。但在实践中,它的用途远不止于此。由于HTML不提供用于指定其他类型的配对关系的标记,因此DL
用作此区域的全部内容。
除定义字词外,DL
也用于对话:DT
元素保存发言人的姓名,DD
保留所说的话。
表单也可以表示为定义列表,但使用LABEL
标记在语义上更正确IMO。
当我必须列出一组属性及其值时,我通常会使用DL
,例如:
File Name: Chloroform Girl.avi
File Size: 320 MiB
File Type: Video