Bonjour,

Je rencontre un problème bizarre : dans un texte où je voudrais mettre en "exposant" le "ème" ou "ième" ou "er" après un nombre ou le chiffre 1, j'ai utilisé la balise <sup> qui apparemment est faite pour cela.
Mais elle se révèle totalement sans effet, on reste à 1er, 22ème, sans modification. Testé avec FF, IE et Chrome, même résultat. Mais l'exemple du W3C donne le résultat attendu, quel que soit le navigateur.
J'ai résolu le problème en redéfinissant dans le CSS
sup { vertical-align: text-top;
font-size: smaller; }
mais je trouve que ce n'est pas très logique.

J'ai l'impression que l'anomalie est liée au fait que je travaille dans un ensemble "flex", mais je ne sais pas pourquoi, ni comment pouvoir y utiliser directement la balise sup prédéfinie.
Dans mon CSS :

.bloc_ppal {
	display: flex;
	flex-direction: column;
	flex-wrap: wrap;
	justify-content: space-between;
	 /*min-height: 100vh; toute la hauteur du viewport (compatible IE9+) */
	background-color: #EEF3F9;
	margin: auto;
	width: 80%;
	}
 .cont_deuxcol {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	justify-content: space-between;
	}
.article .main0, article .main1, article .main2 , aside{
	display: flex;
	flex-flow: column wrap;
		margin-top: 10px;
		padding: 10px;
	border: dotted 1px #7F0510;
	border-radius:5px;
	box-shadow: 0 0 5px 5px rgba(127,05,16,0.10);
}
article .main1 {
	flex:2;
 } 
article .main2 {
	flex:1;
 } 

Dans le html, le bloc_ppal contient un header, le [b] .cont_deuxcol [/i] et le footer
<article class="cont_deuxcol">
			<div class="main1"> <!-- le conteneur du texte principal-->
                    <h1>L'armée</h1>
		<p> Ayant reçu le matricule 622 au recrutement de Fontenay-le-Comte, il est appelé l'année suivante. Affecté au 11<sup>ème</sup> Régiment d'Infanterie, il rejoint son corps le 18 novembre 1882 à Montauban, où il reçoit le matricule 2441 du corps. A cette époque, si le régiment est basé à Montauban, une partie des effectifs tient garnison dans l'est de l'Algérie et l'ouest de la Tunisie. En particulier le 3<sup>ème</sup> bataillon est stationné à Guelma, La Calle et Souk-Ahras. </p>
                  </div>
<div class="main2"> 
</<div>


Quelqu'un a-t-il une idée sur la cause de mon souci? Et comment utiliser sup (et sub) sans avoir à les redéfinir.
Merci par avance.

Modifié par oldmerou (24 Feb 2015 - 14:52)
Bonsoir.

Je n'ai pas de réponse à ta question, mais en bonne typographie, on écrit 1er, puis 2e, 3e, etc., et non 2ième, 3ième ou 2ème, 3ème.

Bon courage.
Merci, Thierry, cela diminuera mes saisies Smiley biggrin , mais j'eusse préféré une réponse sur le fond.Le sujet ne semble pas passionner grand monde Smiley decu
oldmerou a écrit :
Merci, Thierry, cela diminuera mes saisies Smiley biggrin , mais j'eusse préféré une réponse sur le fond.Le sujet ne semble pas passionner grand monde Smiley decu

Dans le domaine de la typographie, Thierry a raison Smiley cligne
Dans le domaine de HTML, tu as raison, <sup> est avec <b>, <i>. <u> et quelques autres, une des balises de présentation qui sont utilisées depuis le début du HTML et que les sectateurs du CSS n'ont pas couvertes d'anathèmes!

Je pense que personne ne te répond parce que personne ne comprend pourquoi tu as ce comportement, moi le premier.
Simplement méfie toi de flex, ce sera manifestement la bonne solution à beaucoup de problèmes quand ça aura un peu vécu, mais les nouvelles bonnes idées sont longues à faire leur chemin et à être correctement supportées par les navigateurs. Je vois mal cependant comment un effet de bord d'un bug dans l'implémentation de flex pourrait conduire à ne pas interpréter <sup> correctement.
As tu essayé de mettre un span stylé pour voir si tu aurais au moins une possibilité de contournement, très lourde j'en conviens?
La différence essentielle entre un scientifique et un ingénieur, c'est que le premier cherche ardemment une parcelle de vérité universelle, alors que l'autre cherche une solution, fut elle totalement dingue et bancale, à un problème local.

Désolé de ne pas pouvoir faire plus que de compatir...
Modifié par PapyJP (20 Feb 2015 - 09:57)
PapyJP a écrit :


As tu essayé de mettre un span stylé pour voir si tu aurais au moins une possibilité de contournement, très lourde j'en conviens?


Le span stylé est effectivement très lourd, et je suis trop fainéant pour le mettre en œuvre, et j'ai préféré redéfinir la balise comme dit dans mon post :

sup { vertical-align: text-top;
font-size: smaller; }

Ça fonctionne (mon côté ingénieur) mais ça froisse mes convictions (mon côté scientifique). D'autant que si je fais un bête programme affichant seulement trois lignes de texte, les balises sup et sub fonctionnent fort bien, quel que soit le navigateur!

En tout cas merci de ta réponse et de tes encouragements.
oldmerou a écrit :


Le span stylé est effectivement très lourd, et je suis trop fainéant pour le mettre en œuvre, et j'ai préféré redéfinir la balise comme dit dans mon post :

sup { vertical-align: text-top;
font-size: smaller; }

Ça fonctionne (mon côté ingénieur) mais ça froisse mes convictions (mon côté scientifique). D'autant que si je fais un bête programme affichant seulement trois lignes de texte, les balises sup et sub fonctionnent fort bien, quel que soit le navigateur!

En tout cas merci de ta réponse et de tes encouragements.

Voilà une très bonne solution d'ingénieur!
Je crois que redéfinir <sup> comme tu le fais est une "bonne pratique" à recommander.

Il n'y a pas de "science" en informatique, ou s'il y en a une c'est une science humaine, qui s'apparente à la psychologie ou à l'ethnologie, les questions à se poser étant du genre "qu'est-ce que des développeurs de moins de trente ans vivant en Californie ont bien pu avoir en tête quand ils ont fait le code que déclenche ma fonction?".
Administrateur
Bonjour,

cette histoire de flex est à mon avis une bonne piste : ce serait hérité d'une manière ou d'une autre par sup et sub ?
- la remarque de 6l20 tient toujours
- que dit Firebug / DevTools / F12 ?
- si tu désactives ces flex, est-ce que le problème disparaît ?
- est-ce que c'est le cas dans tous les navigateurs ?
- en précisant
sub, sup {
  display: inline !important;
}

tu évites d'hériter de je ne sais quoi (le !important n'est là que pour tester à coup sûr. Sinon çaÿmal)
Felipe a écrit :
Bonjour,

cette histoire de flex est à mon avis une bonne piste : ce serait hérité d'une manière ou d'une autre par sup et sub ?
- la remarque de 6l20 tient toujours
- que dit Firebug / DevTools / F12 ?
- si tu désactives ces flex, est-ce que le problème disparaît ?
- est-ce que c'est le cas dans tous les navigateurs ?
- en précisant
sub, sup {
  display: inline !important;
}

tu évites d'hériter de je ne sais quoi (le !important n'est là que pour tester à coup sûr. Sinon çaÿmal)

RÉSOLU

Merci, Felipe, ta réponse m'a mis sur la voie en parlant d'héritage Smiley rolleyes .

Finalement, en essayant un code tout simple avec et sans contexte flexible, et sans CSS, les balises en question fonctionnent parfaitement, quel que soit le navigateur (FF, IE, Chrome).
Il m'est venu à l'idée que ma page CSS pouvait contenir une ânerie : en cherchant sup et sub, je les ai trouvées ... dans le reset de démarrage, avec la valeur "vertical-align: baseline".

Il a suffi de supprimer sup et sub de la liste pour que tout rentre dans l'ordre.

Je suis donc confus Smiley confus d'avoir embêté tout le monde avec ça. Mais finalement j'en tire plusieurs enseignements : 1/ le mieux est souvent, comme on dit, l'ennemi du bien, et je n'aurais pas eu ce problème sans le reset (mais peut-être d'autres?) 2/ il y a plus d'idées dans plusieurs têtes que dans la mienne seule, et accessoirement on apprend des choses intéressantes que l'on n'attendait pas (par exemple les bonnes pratiques typographiques Smiley biggrin 3/ de toute façon, même si personne n'a une solution toute prête, les idées de la communauté sont un bel encouragement à travailler et réfléchir. Merci donc à tous les intervenants.

Pour 6l20 : je n'ai rien en ligne. Mon projet est de réaliser une "chronique familiale" qui viendra compléter mon arbre généalogique et qui est essentiellement à usage "interne" à la famille. C'est la grande souplesse des liens entre pages et les possibilités d'illustrations qui m'ont amené à choisir html, et d'entrée j'ai pris html5/css3. Quand au contexte "flex" découvert sur ce site, il présente certes quelques difficultés, mais quelle souplesse !

Encore merci à tous.