Page 1 sur 2
Problème KHTML et propriété CSS content:
Publié : 26 sept. 2005, 16:27
par calimo
Bonjour,
J'ai un souci avec Konqueror et Safari. Je pensais que mon site s'affichait bien sous ces deux navigateurs. Curieux, je vérifie en faisant des captures d'écran grâce à
http://browsershots.org/
C'est long mais ça marche.
Et là, surprise ! C'est un détail, mais Safari et Konqueror inversent une image et l'affichage d'un accesskey
J'ai fait un testcase minimal :
http://home.etu.unige.ch/~robin0/tests/essai.html
Vous pouvez regarder, ça passe bien sous Firefox et Opera.
Par contre dans Konqueror :
http://browsershots.org/job/379527/
(Sous Safari la capture a raté, erreur 403...

mais avec une autre c'était pareil...)
En gros, sur les éléments de la liste, j'applique simplement l'image en :after avec un url().
Puis le deuxième élément a un id du coup je lui applique un style plus compliqué : attr(id) puis url().
Et voilà que KHTML intérprète ça à l'envers... quelqu'un a une explication ? J'en ai une mais elle est tellement inconcevable à ce niveau de "compétition" que je n'ose même pas en parler

Publié : 26 sept. 2005, 16:52
par chBok
Oh, mais sous MSIE, j'ai juste deux fois le mot
Liste qui apparait
------------------>[

]
Publié : 26 sept. 2005, 17:16
par calimo
chBok a écrit :Oh, mais sous MSIE, j'ai juste deux fois le mot
Liste qui apparait
Je savais que quelqu'un le sortirait
J'ai remplacé l'image par une autre pour voir si laquelle est affichée...

Toujours aussi long ces sites de capture

Publié : 26 sept. 2005, 17:20
par FF_Olivier
Soit Konqueror parse la règle CSS de droite à gauche et applique d'abord l'url puis l'attrib, soit il a d'abord appliqué l'url de la première règle à tous les éléments <li>, sans y revenir dans la deuxième règle puisque déjà appliqué.
Dans les deux cas, le raisonnement est bancal.
Qu'est-ce que ça donne avec 2 images différentes ?
PS : ok, on s'est croisés, il prend bien les 2 images différentes. Alors, parsing de droite à gauche ?
Publié : 26 sept. 2005, 17:37
par calimo
FF_Olivier a écrit :PS : ok, on s'est croisés, il prend bien les 2 images différentes. Alors, parsing de droite à gauche ?
Tu me rassures, parce que s'il ajoutait simplement la nouvelle déclaration à la suivante ça aurait été une honte sans nom
Bref, je modifie pour y ajouter des parenthèses autour de "second".
Ça donne : (second) image
S'il fait : image )second( c'est qu'il parse à l'envers. Mais vu les captures que j'ai obtenues à la base, ça ne doit pas être ça...
Edit : je rajoute encore un bout de texte après l'image pour être sur...
Publié : 26 sept. 2005, 17:37
par Benoit
En théorie, les deux images (l'enveloppe et l'icône OOo) devraient apparaître, c'est ça ?
Publié : 26 sept. 2005, 17:38
par calimo
Non, en théorie l'enveloppe devrait apparaître sur la première ligne, et l'icône OOo sur la seconde...
Code : Tout sélectionner
li:after {
content:url(enveloppe);
}
#second[id]:after {
content: attr(id) url(OO.o)
}
La deuxième déclaration devrait remplacer la première (générique) sur le deuxième item de la liste...
Publié : 26 sept. 2005, 17:43
par FF_Olivier
Konqueror met maintenant Liste[image] aprèsimage (second)
PS : Quand tu écris :
Si je comprends bien, tu cherches un élément ayant un identifiant «second» (#second) et ayant un attribut id ([id]), n'est-ce pas redondant puisque
second est l'
id ?
Publié : 26 sept. 2005, 17:48
par calimo
Bref, il parse dans le désordre !!!
Maintenant que je tiens quelqu'un de collaboratif, et pour pousser un peu plus loin l'investigation, j'ai inversé l'image et l'attribut...
Liste avantimage [image] (second)
Est-ce qu'il affiche ça juste ? Ce qui voudrait dire qu'il parse les images avant et qu'il est suffisemment intelligent pour savoir que les parenthèses doivent entourer l'attibut ?
Au fait est-ce qu'il supporte les compteurs ?
FF_Olivier a écrit :PS : Quand tu écris :
Si je comprends bien, tu cherches un élément ayant un identifiant «second» (#second) et ayant un attribut id ([id]), n'est-ce pas redondant puisque
second est l'
id ?
Oui exactement. Dans l'exemple original c'était un [accesskey] et un sélecteur CSS3 [href$="findelURL.html"] et comme j'avais un bug d'Opera (mais en fait c'était pas un bug mais un comportement normal) je suis arrivé à ce code... je vais simplifier pour voir.
PS : Merci

Publié : 26 sept. 2005, 17:52
par FF_Olivier
J'obtiens maintenant Liste [image] (second) avantimage
Pour les compteurs, je ne sais pas.
PS : et avec #second:after plutôt que #second[id]:after, c'est la même chose.
Publié : 26 sept. 2005, 18:10
par calimo
Hum... "avantimage" devrait, comme son nom l'indique, être avant l'image
Pour les compteurs
j'ai ma réponse. Mais je vais t'épargner ça
J'ai
cherché dans le bugzilla de KDE mais j'ai rien trouvé... je pense que tu n'as pas la dernière version de développement...
Est-ce que tu saurais où je pourrais trouver quelqu'un qui l'as ? Voir si c'est résolu ou pas ? Parce que je crois que ça mériterait d'être reporté...
Publié : 26 sept. 2005, 18:42
par Ben.d2
FF_Olivier a écrit :J'obtiens maintenant Liste [image] (second) avantimage
Pour les compteurs, je ne sais pas.
PS : et avec #second:after plutôt que #second[id]:after, c'est la même chose.
Pour info, pareil sous Safari (je précise car ils ne sont plus tout à fait identique je pense).
Publié : 26 sept. 2005, 18:58
par calimo
Est-ce que c'est une version récente de Safari (voire même une version de développement) pour laquelle il serait possible de rapporter un bug ?
Publié : 26 sept. 2005, 19:01
par Ben.d2
calimo a écrit :Est-ce que c'est une version récente de Safari (voire même une version de développement) pour laquelle il serait possible de rapporter un bug ?
C'est la dernière version stable (2.0.1). Mais pas une version de dev, non.
Par contre il est bien possible de signaler un bug à Apple.
Publié : 26 sept. 2005, 19:03
par FF_Olivier
calimo a écrit :je pense que tu n'as pas la dernière version de développement...

Non, j'ai la version courante 3.3.2 pour KDE 3.3.2.
Mais n'y a-t-il pas maintenant KDE 3.4 avec, sans doute, le konqueror correspondant ?
Est-ce que tu saurais où je pourrais trouver quelqu'un qui l'as ?
Non, désolé, je n'ai aucune idée

...