classement des balises

 

Flow content

  • a
  • abbr
  • address
  • area*
  • article
  • aside
  • audio
  • b
  • bdi
  • bdo
  • blockquote
  • br
  • button
  • canvas
  • cite
  • code
  • data
  • date
  • datalist
  • del
  • details
  • dfn
  • dialog
  • div
  • dl
  • em
  • embed
  • fieldset
  • figure
  • footer
  • form
  • h1
  • h2
  • h3
  • h4
  • h5
  • h6
  • header
  • hgroup
  • hr
  • i
  • iframe
  • img
  • input
  • ins
  • kbd
  • keygen
  • label
  • link*
  • main*
  • map
  • mark
  • math
  • menu
  • meta*
  • meter
  • nav
  • noscript
  • object
  • ol
  • output
  • p
  • picture
  • pre
  • progress
  • q
  • ruby
  • s
  • samp
  • script
  • section
  • select
  • slot
  • small
  • span
  • strong
  • sub
  • sup
  • svg
  • table
  • template
  • textarea
  • time
  • u
  • ul
  • var
  • video
  • wbr
  • autonomous custom elements
  • Text*

* Under certain circumstances (see prose).

Flow

Heading content

  • h1
  • h2
  • h3
  • h4
  • h5
  • h6
  • hgroup
Heading

Sectioning content

  • article
  • aside
  • nav
  • section
Sectioning

Metadata content

  • base
  • link
  • meta
  • noscript
  • script
  • style
  • template
  • title
Metadata

Interactive content

  • a*
  • audio*
  • button
  • details
  • embed
  • iframe
  • img*
  • input*
  • keygen
  • label
  • object*
  • select
  • textarea
  • video*

* Under certain circumstances.

Interactive

Phrasing content

  • a*
  • abbr
  • area*
  • audio
  • b
  • bdi
  • bdo
  • br
  • button
  • canvas
  • cite
  • code
  • data
  • date
  • datalist
  • del*
  • dfn
  • em
  • embed
  • i
  • iframe
  • img
  • input
  • ins*
  • kbd
  • keygen
  • label
  • link*
  • map*
  • mark
  • math
  • meta*
  • meter
  • noscript
  • object
  • output
  • picture
  • progress
  • q
  • ruby
  • s
  • samp
  • script
  • select
  • slot
  • small
  • span
  • strong
  • sub
  • sup
  • svg
  • template
  • textarea
  • time
  • u
  • var
  • video
  • wbr
  • autonomous custom elements
  • Text*

* Under certain circumstances; see prose.

Phrasing

Embedded content

  • audio
  • canvas
  • embed
  • iframe
  • img
  • math
  • object
  • picture
  • svg
  • video
Embedded

Comparer les deux écritures !


<body>
    <h1>top level heading</h1>
    <section>
        <h1>(intended) 2nd level heading</h1>
        <section>
            <h1>(intended) 3nd level heading</h1>
        </section>
    </section>
</body>

<body>
    <h1>top level heading</h1>
    <section>
        <h2>(intended) 2nd level heading</h2>
        <section>
            <h3>(intended) 3nd level heading</h3>
        </section>
    </section>
</body>

Les titres traduisent l'organisation du contenu d'une page Web ou d'un écran. Une bonne structure de titres permet de scanner rapidement un document Web et d'en comprendre la structure.

Les titres permettent également aux utilisateurs de lecteurs d'écran et autres utilisateurs de technologies d'assistance de naviguer dans les pages Web et les écrans.

Il existe encore une certaine confusion et une certaine ambiguïté quant à l'utilisation correcte des titres, notamment en matière d'accessibilité.

C'est un sujet délicat pour en savoir plus : https://www.tpgi.com/heading-off-confusion-when-do-headings-fail-wcag/

VS extension : open-in-browser.

Pour installer dans VisualStudio l'extension open-in-browser à partir de la ligne de commande, utilisez le format suivant.
code --install-extension techer.open-in-browser

Rendez vous dans l'éditeur

keycommand
Alt + Bopen in default browser
Shift + Alt + Bopen in specified browser

Directement dans le fichier .html, bouton de droite

Les éditeurs en ligne

Voici une liste d'éditeurs en ligne !


Pour ma part, j'ai longtemps utilisé jsbin

J'ai également intégré codeMirror pour proposer un éditeur en ligne myEditor.


Web component : sa propre balise

Est-il possible de définir nos propres balises ?

Voici un exemple :

HTML

<my-paragraph> ajouter ou supprimer des mots </my-paragraph>

js



customElements.define('my-paragraph',
  class extends HTMLElement {
    constructor() {
      super();

      this.template =`
                 <style>
  p:after {
  content: " " attr(data-words);
  color: red;
}
  </style>
   <p contenteditable data-words=""></p>`;


      //recopie le texte
      this.init();

      setInterval(_ => {
        const count = this.countWords(this.shadowRoot);
        this.shadowRoot.querySelector("p").dataset.words = count;
      }, 2000);
    }

    countWords(node) {
      const text = node.querySelector("p").textContent;
      return text.trim().split(/\s+/g).length;
    }

    init() {
        const shadowRoot = this.attachShadow({
          mode: 'open'
        })
        .innerHTML = this.template;
        this.shadowRoot.querySelector("p").innerHTML = this.innerHTML;
    }


  })

? h1

Etudier le code HTML suivant


Nous pouvons constater que la numérotation des chapitres à été faite à la main : CE QU'IL FAUT EVIDEMMENT EVITER.

Le code CSS permet de résoudre ce problème
body {
    counter-reset: h1 ;
}

h1:after {
    content: "." counter(h1);
    counter-increment: h1 ;
}

lire article

Tout semble parfait maintenant.

Cependant la lecture de l'article suivant pose un autre problème : celui de la structure du document.

Dans cet article, il est important de comprendre : the sections determines the outline, not the heading rank of the sections. 

On retiendra

Il est intéressant de comprendre l’intérêt de l'utilisation des sections (ou article) dans la strucutre du document. Comparez les deux exemples.


Subscribe to the Google Developers channel

Subscribe to the Google Developers channel here: http://goo.gl/mQyv5L

GOOGLE



 Notez que :
document.registerElement() is deprecated in favor of customElements.define().

DevTools !

Use workspaces to persist changes made in DevTools to your local resources.

DevTools de Chrome propose de ne pas quitter l'environnement de travail. En particulier nous pouvons enregistrer (qq limitations existent) nos modifications ; autrement dit le fichier source sera modifié sans passer par un éditeur !

lire l'article

input

value:
value:
value:
value:
value:
value:
value:
value:
remarque : Autre code pour modifier les valeurs
Vérification par les patterns
    Le pattern .*[\d] vérifie les motifs
  • 2ab : (* = 0 ; d = 2)
  • a2b : (* = 1)
  • ab2 : (* = 2)
  • abc : (erreur)
    Le pattern .*[a-z] vérifie les motifs
  • 2ab : (* = 1)
  • a2b : (* = 0)
  • ab2 : (* = 0)
  • 222 : (erreur)
Nous pourrons écrire pattern="^(?=.*[a-z])(?=.*[\d]).*$" pour vérifier les conditions au moins un caractère et un nombre.
    Autres pattern
  • (?=.{8,}) : au - 8 Entrées
  • (?=.*[A-Z]) : au - 1 Majuscule
  • (?=.*[\W]) : au - 1 Caractère Spécial/li>

Spécification des styles

Découvrons pourquoi la taille des H1 dépend du degré d’imbrication. Commençons par trouver les feuilles de styles par défaut :
http://stackoverflow.com/questions/6867254/browsers-default-css-for-html-elements

Pour Chrome :
https://chromium.googlesource.com/chromium/blink/+/master/Source/core/css/html.css


Balise template !

Can i use : template


En 2008, J. Resig écrivait un post JavaScript Micro-Templating.

Pour résumer, on écrit un Template sous la forme

    1. <script type="text/html" id="user_tmpl">
    2.   <% for ( var i = 0; i < users.length; i++ ) { %>
    3.     <li><a href="<%=users[i].url%>"><%=users[i].name%></a></li>
    4.   <% } %>
    5. </script>