列表中只有一个子元素真的是列表吗?这是错误的语义吗?

时间:2009-11-05 06:10:07

标签: xhtml

当我听到列表时,我预计会有多个项目。

这是一个问题吗?我只是在语义上肛门吗?

<h3>Search Results</h3>
<ul>
    <li><a href="??">only one result</a></li>
</ul>

一个子列表项元素实际上似乎不是一个列表吗?还有其他人有没有想过这个?

7 个答案:

答案 0 :(得分:4)

我认为可以说只有一个元素的列表仍然是一个列表。

您可能不仅要考虑列表的内容,还要考虑允许列表的内容。

答案 1 :(得分:3)

0项无效,1项或多项有效

但是不要相信我的话!解决这个问题的唯一方法是通过W3 Validator service运行它 我的意思是,任何人都是语义肛门关于XHTML,它必须是他们!

这是我的意见:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 <head>
   <title>Doc title</title>
   <meta http-equiv="content-type" content="application/xhtml+xml;charset=utf-8" />
   <meta http-equiv="content-style-type" content="text/css" />
 </head>
 <body>
   <div>

    <h3>List with no items</h3>
    <ul>
    </ul>
    <h3>List with one item</h3>
    <ul>
        <li>Only one</li>
    </ul>
    <h3>List with two items</h3>
    <ul>
    <li>One</li>
    <li>Two</li>
    </ul>

   </div>
</body>

</html>

这是结果:

  

验证输出:1错误

     
      
  1. 错误第15行,第5列:“ul”的结束标记未完成

         

    &LT; / UL&GT;

         

    最有可能的是,嵌套标签并以错误的顺序关闭它们。对于   例如e   &LT p为H.;&LT; EM&GT; ...&LT; / p为H.是   不可接受的,因为&lt; em&gt;一定是   在&lt; p&gt;之前关闭。可接受   嵌套是:     &LT p为H.;&LT; EM&GT; ...&LT; / EM&GT;&LT; / p为H.

         

    另一种可能性是你使用了一个需要孩子的元素   您未包含的元素。   因此,父元素是“不是   完成“,但不完整。例如,   在HTML中元素必须   包含子元素,列表   (ul,ol,dl)需要列表项(li,   或者dt,dd),等等。

  2.   

这里的相关位当然是“you used an element which requires a child element that you did not include

亲自试试吧!

答案 2 :(得分:2)

单项(甚至零项)列表完全有效。你想到什么样的“问题”?

答案 3 :(得分:2)

列表的定义是它的行为,例如[通常]:

  • 提供查询列表中项目数量的方法
  • 允许访问按数字下标索引的单个项目
  • 允许在列表中插入项目
  • ...

一个只包含一个项目的“可能列表”(或者甚至包含零项目)是否就像它有几个项目一样完成所有这些事情?

我认为确实如此,这就回答了你的问题......

答案 4 :(得分:1)

我认为列表与我想到的集合相同(集合可以为空,只包含一个元素,或包含多个元素)。如果不允许集合包含1或0个元素,则会中断集算术。例如,两个集合的交集应该总是返回一个集合。即使该集合是一组或零。如果你说两个集合的交集应该总是返回一个集合,除非该集合只包含一个元素,在这种情况下它应该返回一个元素,或者如果它包含零元素,在这种情况下它应该返回0.实际上,它只是如果允许集合为一组或空集,则一致。列表也是如此。每个列表都可以表示为两个列表的总和/并集。空列表可以表示为两个空列表的并集。包含2个元素的列表可以表示为两个集合的并集,每个集合包含一个元素。和“定”时代。

答案 5 :(得分:0)

无论是文字定义还是数据类型,列表都只能有一个元素。

(从哪里开始,否则?:))

答案 6 :(得分:-1)

列表可以包含空的,1个或多个元素。在你的情况下,

<!-- empty unordered list -->
<ul>
</ul>

<!-- unordered list contains 1 element -->
<ul>
    <li><a href="??">only one result</a></li>
</ul>