IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

HTML Discussion :

Quelle est la sémantique de <div> et <span> ?


Sujet :

HTML

  1. #1
    Membre à l'essai
    Homme Profil pro
    Infographiste
    Inscrit en
    Janvier 2017
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Infographiste
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Janvier 2017
    Messages : 43
    Points : 20
    Points
    20
    Par défaut Quelle est la sémantique de <div> et <span> ?
    Bonjour à vous tous,

    Toujours en formation sur des tutoriels HTML et CSS, je viens de constater que deux balises HTML n'ont pas de sémantique alors que toutes les autres en ont une. Une balise sémantique donne un sens aux éléments qu'elle contient. Et j'ai bien compris que la sémantique des balises sert aussi à une meilleure accessibilité des contenus pour les personnes aveugles ou mal voyantes nécessitant des logiciels de lecture de site web. Ainsi, la balise <p> indique qu'elle va contenir du paragraphe. La balise <a> indique qu'elle va contenir un lien, a étant l'initiale de ancorage (ancrage en français). La balise <hr> indique qu'elle va contenir une ligne horizontale (hr signifiant horizontale rule). Et ainsi de suite. Mais pourquoi avoir nommé DIV une balise qui est destinée à délimiter une zone qui contiendra quelque chose d'autre ? Et pourquoi avoir nommé SPAN une balise qui contiendra toute sorte de chose dans du texte (de la couleur, de la graisse, de l'inclinaison de caractère, une grosseur de caractère, etc.) ?

    Pour moi, DIV est le diminutif de division mais peut être que cela signifie autre chose. Quand à SPAN (to span = couvrir et span = envergure) quel rapport avec une éventuelle mise en forme d'un bout de texte ? Les concepteurs du HTML ont-ils choisi ces mots par hasard, comme j'aurai pu les appeler PAL pour DIV et PATATE pour SPAN ? Ou bien y a-t-il une véritable explication quand au choix de ces mots ? Et pourquoi pas avoir donné une vrai sémantique à ces deux balises ? Par exemple AREA pour DIV et OTHER pour SPAN ?

  2. #2
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    Bonjour,

    En effet, il y a des balises "génériques" et la sémantique n'est pas toujours très intuitive;

    Disons que div correspond à une plage du document, non limitée dans ses dimensions, alors que span correspond au maximum à une ligne et souvent beaucoup moins.
    div délimite une zone qui peut contenir tout ce que tu veux.
    span est dédié à du texte et sa dimension est en général celle du texte, un peu comme quand tu sélectionnes un mot avec la souris. Il est pratique pour donner une mise en forme css à tel ou tel élément textuel.

    Bref, la structure canonique:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <div>
       <span class="first">un texte</span>
       <br />
       <span class="second">un autre texte</span>
    </div>
    reste pratique pour organiser un document.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Infographiste
    Inscrit en
    Janvier 2017
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Infographiste
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Janvier 2017
    Messages : 43
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par javatwister Voir le message
    Bonjour,

    Disons que div correspond à une plage du document, non limitée dans ses dimensions, alors que span correspond au maximum à une ligne et souvent beaucoup moins.
    div délimite une zone qui peut contenir tout ce que tu veux.
    span est dédié à du texte et sa dimension est en général celle du texte, un peu comme quand tu sélectionnes un mot avec la souris. Il est pratique pour donner une mise en forme css à tel ou tel élément textuel.
    Merci pour ta réponse qui m'apporte plus de précisions. Tes descriptions des balises <span> et <div> sont précises et clairs, surtout celle de <span> dont je comprends mieux son utilisation. Mais pourquoi les concepteurs du HTML n'ont pas plutôt appelé cette balise <text> ou <txt>. Cela me semble plus approprié pour indiquer que c'est une balise intervenant dans une sélection de texte. J'aurai aimé savoir à quoi ils pensaient quand ils ont fait leur choix.

    Par contre, dans ton exemple de code, j'ai remarqué que tu as utilisé directement la balise <span> dans une balise <div>. Ce n'est pas obligatoire que <span> soit utilisée dans la balise <p> ?

  4. #4
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    Citation Envoyé par Obi Juan Kenobi Voir le message
    j'ai remarqué que tu as utilisé directement la balise <span> dans une balise <div>. Ce n'est pas obligatoire que <span> soit utilisée dans la balise <p> ?
    Non non, la logique des "éléments anonymes" c'est "un span dans un div";

  5. #5
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 472
    Points : 4 673
    Points
    4 673
    Par défaut
    litteralement parlant, span (en anglais) signifie envergure/espace ... je ne sais pas si ca aide....

  6. #6
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    Oui, c'est ça; on peut le traduire par "plage", "intervalle"... Et finalement, on aurait pu l'appeler "range", aussi bien!
    Mais comme c'est un élément inline, il vaut mieux considérer que c'est un "textContainer";

  7. #7
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 889
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 889
    Points : 6 633
    Points
    6 633
    Par défaut
    Citation Envoyé par Obi Juan Kenobi
    Mais pourquoi les concepteurs du HTML n'ont pas plutôt appelé cette balise <text> ou <txt>. Cela me semble plus approprié pour indiquer que c'est une balise intervenant dans une sélection de texte. J'aurai aimé savoir à quoi ils pensaient quand ils ont fait leur choix.
    Pas à grand chose de sémantique en tout cas, dans les premières versions d'HTML, les balises étaient surtout fonctionnelles car en l'absence de css, c'est elles qui assuraient la mise en page (Des balises comme <CENTER></CENTER> ou <MULTICOL></MULTICOL> en sont un parfait exemple) et l'aspect du texte (<FONT></FONT> ou <BLINK></BLINK>). De ce temps ont perduré les balises <span> et <div> du fait de leur neutralité: <div> groupe, <span> délimite une étendue d'éléments inline (pas forcément du texte). Elles sont effectivement purement structurantes.

    La préoccupation sémantique, n'a fait son apparition que plus tard notamment avec xhtml 1.0. La volonté est de se rapprocher du XML (donc d'un découpage sémantique) et au même moment l'arrivée de css2 a permis de délester le html de toute la partie mise en page. Ces deux balises étaient alors (et le sont toujours) d'autant plus utiles que le nombre de balises étaient faible en comparaison de ce que propose html 5. Ce n'est pas pour rien qu'au même moment ont émergé les microformats.

  8. #8
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 085
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 085
    Points : 44 682
    Points
    44 682
    Par défaut
    Bonjour,
    Citation Envoyé par Obi Juan Kenob
    Mais pourquoi les concepteurs du HTML n'ont pas plutôt appelé cette balise <text> ou <txt>.
    Est-ce que cela aurait eu plus de sens


    J'aurai aimé savoir à quoi ils pensaient quand ils ont fait leur choix.
    Le mieux serait de leurs demander


    Bon !!! Tout d'abord il est peut-être bon de rappeler que l'élément <span> n'est apparu qu'avec HTML4, il n'était pas présent sur les versions précédentes.

    Pour moi le mot SPAN est à prendre au sens « étendue » pour être cohérent avec les attributs des cellules des <table> rowspan et colspan.
    C'est un élément, « inline », neutre, tout comme les DIV qui ne servent qu'au cosmétique après l'introduction du CSS, comme dit par RegExpMan


    Ressources
    :

Discussions similaires

  1. Réponses: 3
    Dernier message: 21/01/2009, 22h47
  2. [XHTML] Quelle est la différence entre un <div Id=> et un <div value=> ?
    Par pitouche dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 14/04/2007, 05h23
  3. Quelle est la fiabilité du protocole SSL ?
    Par Anonymous dans le forum Développement
    Réponses: 5
    Dernier message: 05/09/2002, 13h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo