我正在使用HTML5,并且在验证过程中,此错误贯穿我的网页。我也在我的代码中使用PHP,我不知道这是否导致错误。错误是:
在此上下文中,元素li不允许作为元素div的子元素
这是一个引发此错误的DIV:
<div class="signin">
<?php
if (isset($_SESSION['userID'])){
echo"
<li><a href='logout.php'>Logout</a></li>";}
else{ echo "
<li><a href='signin.php'>Sign in</a></li>
<li><a href='register.php'>Register</a></li>
";}?>
</div>
这是另一个:
<div class="navigation">
<li class="navbutton <?php if($navsection == 'home') {echo ' current';}?>" id="navbuttonleft" >
<a href="index.php">Home</a></li>
<li class="navbutton <?php if($navsection == 'products') {echo ' current';}?>">
<a href="products.php?main=go">Products</a></li>
<li class="navbutton" <?php echo ($navsection == 'myaccount') ? ' class="current"' : ''; ?>>
<a href="myaccount.php">My Account</a></li>
<li class="navbutton" <?php echo ($navsection == 'about') ? ' class="current"' : ''; ?>>
<a href="aboutus.php">About us</a></li>
<li class="navbutton" <?php echo ($navsection == 'contact') ? ' class="current"' : ''; ?>>
<a href="contactus.php">Contact Us</a></li>
<li class="navbutton" <?php echo ($navsection == 'sitemap') ? ' class="current"' : ''; ?>>
<a href="sitemap.php">Site Map</a></li>
</div>
任何建议都表示赞赏。
答案 0 :(得分:2)
HTML(甚至HTML5)遵循规则,通过这些规则可以嵌套元素以在语义上构建文档。在您的情况下,错误意味着您忘记将<li>
元素包装到<ul>
,<ol>
或<menu>
元素中,例如你忘了表示列表的开头和结尾。
引用http://dev.w3.org/html5/html-author/#the-li-element
4.3.5.9 li元素
li元素代表一个列表项。
开始标记:必填
结束标记:可选
类别:无。
包含者:
- 内部元素。
- 内部ul元素。
- 内部菜单元素。
内容模型:流量内容。
<ul>
<li>Unordered First Item with Ordered Sublist
<ol>
<li>Ordered First Item</li>
<li>Ordered Second Item</li>
<li>Ordered Third Item</li>
</ol>
<li>Unordered Second Item</li>
<li>Unordered Third Item</li>
</ul>
答案 1 :(得分:1)
你不能把李作为div的子元素。它总是需要在<ul>
或<ol>
答案 2 :(得分:1)
我认为LI应该在UL或OL标签内
答案 3 :(得分:1)
如前所述:<li>
应始终嵌入<ul>
或<ol>
标签中!
试试这个:
<div class="signin">
<?php
if (isset($_SESSION['userID'])){
echo"
<ul><li><a href='logout.php'>Logout</a></li></ul>";}
else{ echo "
<ul>
<li><a href='signin.php'>Sign in</a></li>
<li><a href='register.php'>Register</a></li>
</ul>
";}?>
</div>
另一个:
< nav class = "navigation" >
<ul>
< li class = "navbutton <?php if($navsection == 'home') {echo ' current';}?>"
id = "navbuttonleft" > < a href = "index.php" > Home < /a></li >
< li class = "navbutton <?php if($navsection == 'products') {echo ' current';}?>" > < a href = "products.php?main=go" > Products < /a></li >
< li class = "navbutton" < ? php echo($navsection == 'myaccount') ? ' class="current"' : ''; ? >> < a href = "myaccount.php" > My Account < /a></li >
< li class = "navbutton" < ? php echo($navsection == 'about') ? ' class="current"' : ''; ? >> < a href = "aboutus.php" > About us < /a></li >
< li class = "navbutton" < ? php echo($navsection == 'contact') ? ' class="current"' : ''; ? >> < a href = "contactus.php" > Contact Us < /a></li >
< li class = "navbutton" < ? php echo($navsection == 'sitemap') ? ' class="current"' : ''; ? >> < a href = "sitemap.php" > Site Map < /a></li >
</ul>
< /nav>
请注意,我将'div'更改为'nav',因为这是在HTML5中用于导航块的首选元素。