web-dev-qa-db-fra.com

Comment écrire des puces à plusieurs niveaux conformes au W3C en HTML?

Est-il possible d'écrire des puces à plusieurs niveaux conformes au W3C (liste non ordonnée) en HTML?

Ul imbriqué peut être utilisé, mais n'est pas compatible W3C.

 <ul>
     <li>myItem 1</li>
     <li>myItem 2</li>
     <ul>
        <li>myItem 2a</li>
     </ul>
     <li>myItem 3</li>
     <li>myItem 4</li>
 </ul>
  • myItem 1
  • myItem 2
    • myItem 2a
  • myItem 3
  • myItem 4

Dans Visual Studio, le code ci-dessus donne l'avertissement: Validation (XHTML 1.0 Transitional): l'élément 'ul' ne peut pas être imbriqué dans l'élément 'ul'

38
Techboy

Le seul enfant valide d'un ul ou ol est un élément li; un li peut cependant contenir un ul (ou ol). Pour atteindre votre objectif:

  <ul>
      <li>myItem 1</li>
      <li>myItem 2</li>
      <li style="list-style-type:none">
         <ul>
           <li>myItem 2a</li>
        </ul>
     </li>
     <li>myItem 3</li>
     <li>myItem 4</li>
</ul>
77
David Thomas

Complétant la réponse de David Thomas, cela supprimerait la puce indésirable:

<ul>
    <li>myItem 1</li>
    <li>myItem 2        
        <ul>
            <li>myItem 2a</li>
        </ul>
    </li>
    <li>myItem 3</li>
    <li>myItem 4</li>
</ul>
12
Marlon