28172 sujets

CSS et mise en forme, CSS3

Bonjour
Le problème est dans http://paralletes.free.fr/tests/navlist.html
La question: comment styler la balise <nav> pour éviter le saut de ligne après la parenthèse?
Note: j'ai mis les feuilles de style de mon site en link dans la page, mais le problème se produit de la même façon sans ces liens.
Merci de vos conseils
JENCAL a écrit :
Du coup, en mettant un petit display:inline à la balise &lt;p&gt; ET &lt;nav&gt; cela fonctionne

Merci, ça marche super... sauf que je n'ai pas envie d'avoir le <p> inline, mais c'est une autre histoire...
Ce que je crois comprendre, c'est que le <p> s'interrompt, et qu'écrire
<p>Lorem ipsum dolor sit amet<nav>....</nav>

c'est en fait la même chose qu'écrire
<p>Lorem ipsum dolor sit amet</p><nav>....</nav>
Ou autrement dit on ne peut pas mettre un <nav> dans un <p>, même si on déclare le <nav> inline.
JENCAL a écrit :
a ce moment là, le display inline sur le <p> n'est plus obligatoire

Effectivement, c'est ce que je vais faire.
On voit bien sur cet exemple que le HTML (dit "HTML5") et le CSS (dit "CSS3") ne sont pas conçus de façon cohérente.
Une balise <p> est supposée contenir des éléments inline, que ce soit du texte, une balise <span>, <cite>, <img>, et autres, mais si on y met une balise qui n'est pas inline par défaut,et qu'on la style avec display:inline, les navigateurs ne reconnaissent pas ce fait et interrompent la portée de la balise <p>.
A un certain moment de l'évolution du HTML on n'était pas obligé de clore les balises <p>, de même que <tr> et sans doute d'autres dont je ne me souviens plus: elles s'arrêtaient d'office quand on rencontrait une balise de type bloc. Je suppose que cette situation justifie cela, mais dire qu'une balise quelconque peut devenir inline ou bloc selon le CSS n'est vrai que jusqu’à un certain point.
Ceci dit, cela ne me choque pas que l'on ne puisse pas mettre une balise NAV dans un P...
A priori ce sont deux blocs avec des finalités distinctes.
Le SPAN ma paraît plus approprié.
Quant au fait de ne pas mettre de balises de fermeture c'est, certes, une facilité d'écriture mais elle te ferme de facto le chargement possible dans un éditeur XML, ce qui s'avère parfois bien utile mais requiert un document "bien formé".
Attention, je n'ai pas dit un document "valide", qui est une notion différente en XML.
Fermer les balises me paraît une bonne habitude, même si on veut grapiller quelques caractères.
Rigueur...
Je suis bien d'accord sur la fermeture de balises, personnellement je le fais, et je regrette la tendance anti XHTML qui domine en ce moment, mais c'est un fait. Par ailleurs certaines habitudes ont la vie dure. N'oublions pas que les anglo-saxons on signé la convention du système métrique au XIXIème siècle...

Quant aux balises "naturellement block ou inline", c'est une survivance du passé. Une balise ne devrait pas être "block" ou "inline", c'est une propriété CSS au choix de l'utilisateur et dépendant du contexte.

Il ne devrait pas être impossible de mettre des <nav> dans des <p>.
<span> en soi ne signifie rien d'autre que "balise indéterminée inline", comme <div> signifie "balise indéterminée block". Si le contenu d'un <span> est une liste de liens, ça devrait pouvoir s'appeler <nav>, car c'est pour ça que <nav> a été inventé.

Mais de toute façon je remercie JENCAL pour m'avoir aidé à comprendre ce qui se passait, je ferai avec.
Je ne vous dis pas les questions que je me posais, en particulier sur l'influence de directives de "reset" en tête de ma feuille de style, par exemple
*:before,  *:after{content:none}
pour supprimer les caractères que certains navigateurs se croient autorisés à ajouter eux même sans demander notre avis! Je me demandais si ce n'était pas cette directive qui 'ajoutait' un élément block en tête de mes <nav>. Fausse piste, heureusement!
Entièrement d'accord sur le fait que l'absence de DTD XHTML5 est en soi une régression car elle ne me permet pas de valider les documents HTML produits au travers des analyseurs Java existants, contrairement à ce que je peux faire en HTML 4.
C'est une carence qui rend de facto une page HTML bancale là où une validation XML levait toute ambiguïté.
Après avoir fait quelques recherches sur le web, il existe bien une ou plusieurs DTD "non officielles" ou du moins non validées par le W3C.
Si quelqu'un sur le forum peut me communiquer une DTD HTML5 stable et validant tout document conforme à ces spécifications, je suis bien entendu preneur...
Bonne fin de journée.

EDIT : correction fautes de frappes
Modifié par sepecat (26 Jan 2016 - 19:44)