HTML5错误,有人知道这意味着什么吗?
我正在使用HTML5,在验证过程中,这个错误贯穿我的页面。我也在代码中使用PHP,我不知道这是否是导致错误的原因。错误是: 元素li在此上下文中不允许作为元素div的子元素 以下是导致此错误的一个DIV:HTML5错误,有人知道这意味着什么吗?,html,w3c-validation,Html,W3c Validation,我正在使用HTML5,在验证过程中,这个错误贯穿我的页面。我也在代码中使用PHP,我不知道这是否是导致错误的原因。错误是: 元素li在此上下文中不允许作为元素div的子元素 以下是导致此错误的一个DIV: <div class="signin"> <?php if (isset($_SESSION['userID'])){ echo" <li><a href='logout.php'>Logout</a></li>";} e
<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>
HTML(甚至HTML5)遵循一些规则,通过这些规则可以嵌套元素,从而在语义上构造文档。在您的情况下,该错误意味着您忘记将元素包装到
、或元素中,例如,您忘记表示列表的开始和结束
引用
4.3.5.9锂元素
li元素表示一个列表项
开始标记:必需
结束标记:可选
类别:无。
包含于:
- 在ol元素内部
- 内部ul元素
- 内部菜单元素
内容模型:流动内容
例子
- 带有有序子列表的无序第一项
- 订购的第一项
- 订购第二项
- 订购第三项
- 无序第二项
- 无序第三项
输出
- 带有有序子列表的无序第一项
- 订购的第一项
- 订购第二项
- 订购第三项
- 无序第二项
- 无序第三项
HTML(甚至HTML5)遵循嵌套元素的规则,以从语义上构造文档。在您的情况下,该错误意味着您忘记将元素包装到
、或元素中,例如,您忘记表示列表的开始和结束
引用
4.3.5.9锂元素
li元素表示一个列表项
开始标记:必需
结束标记:可选
类别:无。
包含于:
- 在ol元素内部
- 内部ul元素
- 内部菜单元素
内容模型:流动内容
例子
- 带有有序子列表的无序第一项
- 订购的第一项
- 订购第二项
- 订购第三项
- 无序第二项
- 无序第三项
输出
- 带有有序子列表的无序第一项
- 订购的第一项
- 订购第二项
- 订购第三项
- 无序第二项
- 无序第三项
您不能将li作为div的子元素。它总是需要在
或中。您不能将li作为div的子元素。它总是需要在
或中。我认为li应该在ul或OL标签中。我认为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中用于导航块的首选元素。如前所述:应始终嵌入
或标记中!
试试这个:
<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中用于导航块的首选元素。这个问题与HTML5有什么关系?我正在使用HTML5并进行验证,我觉得这个问题与HTML5有关,因为我以前从未验证过它,这个问题与php有什么关系?当我在代码中使用php时,我不确定这是否导致了我的错误,现在我知道不是。所以我觉得它可能与PHP有关。这个问题与html5有什么关系?我正在使用html5并进行验证,我觉得这个问题与html5有关,因为我从来没有验证过它