Ошибка HTML5, кто-нибудь знает, что это значит? - PullRequest
0 голосов
/ 26 февраля 2012

Я использую 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>

Любые предложения приветствуются.

Ответы [ 4 ]

2 голосов
/ 26 февраля 2012

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. Заказанный первый элемент
    2. Упорядоченный второй элемент
    3. УпорядоченныйТретий элемент
  • Неупорядоченный второй элемент
  • Неупорядоченный третий элемент
1 голос
/ 26 февраля 2012

Как было сказано ранее: <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', потому что этот элемент предпочтителен для использования внавигационные блоки.

1 голос
/ 26 февраля 2012

Я думаю, что LI должен быть в пределах UL или тега OL

1 голос
/ 26 февраля 2012

вы не можете иметь li как дочерний элемент div.оно всегда должно быть внутри либо <ul>, либо <ol>

...