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 :shock:

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... :shock: 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 :lol:

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

------------------>[ :oops: ]

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 :lol: :lol: :lol:
Je savais que quelqu'un le sortirait :lol:

J'ai remplacé l'image par une autre pour voir si laquelle est affichée... :roll: 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 :shock: :lol:

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) :shock:

PS : Quand tu écris :

Code : Tout sélectionner

#second[id]
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 !!! :shock: :?: :lol:

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 ? :lol:

Au fait est-ce qu'il supporte les compteurs ?
FF_Olivier a écrit :PS : Quand tu écris :

Code : Tout sélectionner

#second[id]
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 :wink:

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 :lol:

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 :? ...