vinzo a écrit :
Bonjour à tous.
Malgré de très nombreuses contraintes dues à une mauvaise conception, j'essaie d'intégrer un site dans les normes et respectant le plus possible la sémantique HTML.
Or, je dois réalisé un petit filet séparateur entre deux blocs (comprenant un texte, une image, in lien).
J'étais tenté par hr (reformaté via css), mais celui-ci semble générer des espaces verticaux parasites sous IE.
vinzo a écrit :
Je vais opter pour la solution qui me semble la plus élégante <div class="hr"></div>.
Je peux jouer les troubles-fêtes ? Dites, je peux ?
Côté
sémantique, <hr>... est plus "sémantique" que <div class="hr"></div>. Et pourtant il ne s'agit, dans les deux cas, que de présentation.
"sémantique", ça veut dire quoi, ici ?
- un balisage qui pourra être interprété par une machine ? Auquel cas, <hr> présente l'indéniable avantage d'être beaucoup plus largement interprété qu'un <div class="hr"></div>
- un élément doté d'un sens précis selon une DTD ? Auquel cas, <hr> est, là encore, l'élément spécifique qu'un <div class="hr"></div> vient inutilement répliquer.
Ah... Mais non ! C'est de la présentation, ai-je dis ! Maudits soient ceux qui se servent du HTML pour faire de la vile présentation ! Cette ligne de séparation n'est pas sémantique, à l'évidence. C'est juste une pollution décorative. Donc, il faut bien un <div class="hr"></div> et tout plein de CSS qui vont bien dessus...
Alors : <hr> ? <div class="hr"></div> ? Oui ? Non ? Zut ?
Enlevons ce mot qui rend tout très confus:
sémantique. Et posons clairement la question :
- l'objectif de l'auteur est-il de produire un code concret, avec l'avantage d'être plus aisément interprété par un plus grand nombre de navigateurs ? C'est à dire un code moins dépendant de CSS ? Dans ce cas, <hr> est son ami : valide, conforme, favorisant l'accessibilité, que ce soit dans un navigateur vocal ou un navigateur texte... Certes un peu embêtant parfois à styler dans certains navigateurs. Mais est-ce l'essentiel ?
- sinon, si son objectif est de produire un code beaucoup moins orienté vers un media donné, beaucoup moins
visuel dans ce cas précis, si c'est cela que vous mettez derrière le mot
sémantique : ça ne vous titille pas un peu sur les bords, ce
<div class="hr"></div> (auquel il faudrait d'ailleurs ajouter un contenu du type & nbsp; pour qu'il soit pris en compte par tous les navigateurs) ? Une
border-bottom sur un élément HTML existant ne serait-elle pas plus
élégante ? Le prix de l'élégance étant, dans tous les cas, une plus grande dépendance envers CSS, bien-sûr.
---
La chose n'est pas le mot, et le mot n'est pas la chose Modifié par Laurent Denis (02 Mar 2005 - 11:13)