1

Encore un mystère des CSS que je ne m'explique pas. Aujourd'hui : un span qui prend une taille sans qu'on lui demande.

Voilà la page de test (réduite au minimum), et voilà ce que j'obtiens :

- Avec Internet Explorer 6 et 7
- Avec Firefox, Opera et Chrome

Comme les trois "non-IE" s'accordent sur le résultat, je suppose que c'est Internet Explorer qui se plante, et pourtant son rendu me semble plus logique. Le code est globalement très simple et ressemble à ça :
    <div class="outer">
        <span class="inner" style="float: left;">
            <a href="#">Voici mon lien</a>
        </span>
    </div>

Je ne comprends pas ce qui explique tout cet espace laissé entre le haut de la balise <a> et le haut du <span> qui l'entoure (l'espace rouge au-dessus de "Voici mon lien" dans la deuxième capture), alors que je n'en ai jamais spécifié. C'est pour ça que le rendu d'Internet Explorer, qui ne laisse aucune place entre le <a> et le <span>, me semble bien plus normal.

En utilisant Firebug ou l'outil d'inspection intégré à Webkit, on se rend compte que la balise <a> fait 12 pixels de haut, alors que le <span> en fait 20. Qu'est-ce qui explique cette différence ?

P.S : Si je supprime le <span> (quitte à déplacer le style float: left dans le <a>, ça ne change rien) alors tout redevient normal : plus d'espace "fantôme" ni d'élément démesuré.

P.P.S : Le gag, c'est qu'Internet Explorer réagit comme ça uniquement si je colle le <span> et le <a> sur la même ligne. J'ai triché dans le [pre] ci-dessus en les mettant sur 3 lignes, alors que tout est collé dans le vrai code source de la page. Ça non plus, je n'arrive pas à comprendre en quoi ça joue ^^
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

2

Konqueror réagit comme Firefox, Opera et Chrome. (L'espace est un peu plus petit, mais clairement présent.) Arora aussi (avec un espace un peu plus grand que Konqueror), mais ce n'est pas étonnant, c'est le même moteur que Chrome (WebKit).

Intéressamment, la taille des polices joue: si je diminue la taille des polices de Konqueror, l'espace diminue aussi. Apparemment le mystérieux espace en question est simplement l'écart entre les lignes.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

3

Je ne sais pas du tout si j'enfonce une porte grande ouverte, mais il me semble avoir lu quelque part que certains moteurs de rendu étaient paramétrés avec des padding et margin prédéfinis pour certaines balises, ce qui entrainait les différences d'affichage selon les navigateurs. Ces propriétés étaient spécifiées du genre 1.5em
J'avais trouvé une page qui donnait une bonne partie de ces données pour différents navigateurs, mais je n'en ai retenu qu'une chose : ils proposaient, afin d'éviter ça, de mettre un truc genre html { margin:0; padding:0; }, tout en reconnaissant que c'était moche à diable
avatar
Je sais qu'il y a marqué "con" sur ma gueule. Je suis né comme ça, je m'y fais. Mais pourquoi toutes les filles qui me plaisent se sentent obligées de rajouter le suffixe "-fident" ?

4

c'est pas ça, mais merci quand même pour la tentative ^^
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

5

Et line-height: 100%?
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

6

c'pas génial de mélanger les % et les px, ça te fait des belles surprises après...
avatar
Il n'a pas de mots
Décrire son mépris
Perdre les rênes
Il a perdu la foi

7

Effectivement, il ne faut utiliser que des %!
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

8

désolé, je ne vois pas
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

9

non plus avec line-height: 100% :/ (mais je ne comprends pas trop pourquoi la valeur n'aurait pas été de 100% par défaut en fait)
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

10

Et si tu mets 90% ou 80%?
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

11

oui, à tâtons je peux retomber sur la taille qui m'intéresse, mais ça reste une solution de contournement et je ne comprends toujours pas le problème qui est à l'origine de ce comportement :/
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

12

et genre sur un des forums/mailinglist des w3c validator&co ça n'aurait pas une chance d'obtenir réponse ?
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

13

Les pauvres, je sais pas si ils ont mis un forum en place (je connais pas, si c'est le cas) mais c'est un coup à plus savoir où donner de la tête grin
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

14

C'est quoi l'en-tête que tu utilises au début du document ?
avatar

15

Heu vous savez, le document il est accessible depuis le post ./1 hein, vous pouvez aussi tout simplement cliquer sur le lien grin

Je ne sais pas si tu parles de l'en-tête du document ou de l'en-tête HTML donc dans le doute je préfère ne pas tout copier coller ici. Ceci dit si le but de la question était de savoir si ça mettait Internet Explorer en mode quirk alors non, je ne pense pas (sinon en effet il y aurait eu des différences, et plus importantes que ça d'ailleurs).
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

16

Ah zut, désolé grin

Tu as essayé de le mettre en transitional pour voir comment il réagissait ?
avatar

17

Oh, bien vu, en effet en transitional ça rend exactement comme je m'y serais attendu. La question qui reste est : pourquoi ? grin

[edit] que -> comme embarrassed
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

18

Alors là, aucune idée grin
Je sais juste que j'ai résolu des problèmes de positionnements en repassant en transitionnal (le pire, et de loin, étant de ne pas mettre d'information... là il se met dans un mode bâtard qui pourrit tout).
avatar

19

Purée je sais pas comment vous faites pour aimer écrire dans des langages pour lesquels le comportement de l'interprêteur est variable ! sick

20

justement pour le caractère imprévisible ? grin
avatar
Il n'a pas de mots
Décrire son mépris
Perdre les rênes
Il a perdu la foi

21

du coup, ton problème est résolu ou pas ? tu as réussi à avoir le même affichage sur IE / FF ?
Ancien pseudo : lolo

22

Bah non toujours pas. Le test de Nil fonctionne (si je passe en transitional j'ai le rendu auquel je m'attendais), mais je veux rester en strict et je ne comprends pas ce qui justifie le résultat que j'obtiens.
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

23

apparemment, ca viendrait d'un bug d'interprétation dans le moteur de FF (et autres utilisant le même moteur).

dans ton CSS, le span a pour font environ 14px de haut, alors que le a a pour font 10px de hauteur. hors le moteur de rendu se plante et prend pour hauteur celui du span pour les hauteurs de ligne. le bug disparait si on précise dans le span la meme hauteur de fonte que celle du a, ou une hauteur de fonte inférieure

exemple : [lien enlevé]

[edit] : lien enlevé
Ancien pseudo : lolo

24

Ah oui tiens, en assignant la même taille de font au <span> et au <a>, le bug est corrigé... bien vu ! Mais ça serait un bug du moteur de rendu, ça ? Parceque si oui, alors Firefox, Opera et Chrome ont le même bug, ce qui me semble quand même assez peu probable ?

[edit] En tout cas ça me permet de résoudre ce bug de façon un peu plus fiable qu'en changeant le doctype, merci smile
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

25

de rien wink

mais pour moi, ca reste un bug dans le moteur de rendu. Vu que firefox et opera utilisent les mêmes bases, et que chrome a du fortement s'en inspiré également, ca ne m'étonnerait pas ! il se plante entre la hauteur de la ligne estimée, et la hauteur de la ligne réelle. J'ai (eu) le même genre de problème avec ma lib de conversion html2pdf wink
Ancien pseudo : lolo

26

c'est bon, je peux enlever le fichier html de mon serveur ?
Ancien pseudo : lolo

27

oui, merci happy
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

28

Firefox ne se trompe pas. Il est rapide et respecte les standards :-/
Tout ce qui passe pas par le port 80, c'est de la triche.

29

ils sont pas à l'abri d'un bug qu'ils n'auraient jamais vu...
Ancien pseudo : lolo

30

Folco (./19) :
Purée je sais pas comment vous faites pour aimer écrire dans des langages pour lesquels le comportement de l'interprêteur est variable ! sick

C'est ce que je préfère en css justement grin
Quand t'arrives à faire un truc bien space qui marche partout t'es super content smile
Et les crises de rire nerveux devant les énormités que t'arrives à sortir par moments ...
avatar