Problème CSS avec FireFox 1.5, ok avec la 1.0.7 et IE
Problème CSS avec FireFox 1.5, ok avec la 1.0.7 et IE
A voir certains sujets, il semble que je ne sois pas le seul a avoir des problèmes avec le images de fond en CSS dans les cellules.
Je dois préciser que j'utilise le CMS Joomla! pour mon site.
Voici ma petite histoire (postée sur un forum Joomla!):
Je me croyais sauvé de ces problèmes lorsque j'ai enfin (!) trouvé un template à mon gout qui passe aussi bien sous IE que FF jusqu'à...
... la sortie de FF 1.5 !
En effet, jeme suis décidé hier à mettre à jour mon Firefox et je me suis empressé d'aller voir mon site pour me familiariser avec cette nouvelle version et - oh surprise - les images de fond de mes colonnes latérales ne sont plus répétées sur toute la hauteur !
Après un petit coup de déprime, j'ai faillis descendre une bouteille mais j'ai pris mon courage à 2 mains pour chercher d'où venais le problème. Index.php, CSS, url et format des images, j'ai eu beau chercher, je n'ai rien trouvé... Crying or Very sad
Alors si quelqu'un a une idée ou a entendu parler d'un bug de cette version de FF, ça m'aiderait beaucoup !
Je dois préciser que j'utilise le CMS Joomla! pour mon site.
Voici ma petite histoire (postée sur un forum Joomla!):
Je me croyais sauvé de ces problèmes lorsque j'ai enfin (!) trouvé un template à mon gout qui passe aussi bien sous IE que FF jusqu'à...
... la sortie de FF 1.5 !
En effet, jeme suis décidé hier à mettre à jour mon Firefox et je me suis empressé d'aller voir mon site pour me familiariser avec cette nouvelle version et - oh surprise - les images de fond de mes colonnes latérales ne sont plus répétées sur toute la hauteur !
Après un petit coup de déprime, j'ai faillis descendre une bouteille mais j'ai pris mon courage à 2 mains pour chercher d'où venais le problème. Index.php, CSS, url et format des images, j'ai eu beau chercher, je n'ai rien trouvé... Crying or Very sad
Alors si quelqu'un a une idée ou a entendu parler d'un bug de cette version de FF, ça m'aiderait beaucoup !
Bon, quelqu'un m'a trouvé une soultion.
Il ne faut pas mettre un ID dans un TD mais lui assigner une Class comme cela :
<td><div id="right_shadow">
<td class="right_shadow">
Bien évidemment, il faut corriger le CSS en conséquence, c a d remplacer
#right_shadow par .right_shadow
Bref, encore une contrainte de plus à prendre en compte...
Globule
(trop de loi tue la loi)
Il ne faut pas mettre un ID dans un TD mais lui assigner une Class comme cela :
<td><div id="right_shadow">
<td class="right_shadow">
Bien évidemment, il faut corriger le CSS en conséquence, c a d remplacer
#right_shadow par .right_shadow
Bref, encore une contrainte de plus à prendre en compte...
Globule
(trop de loi tue la loi)
Bonjour,
L'adrsese de ton site permettra surement aux passionnés de Geckozone de t'apporter leur aide.
Car sans matière à réfléchir, il n'y a pas vraiment de problème à résoudre.
C'est l'exemple des éternels :
Quoi que je peux dores et déjà t'annoncer que l'utilisation de tableaux n'est préconisée QUE pour afficher des données tabulées, pas pour faire de la mise en page. Une recherche sur le forum te permettra de t'en rendre compte...

L'adrsese de ton site permettra surement aux passionnés de Geckozone de t'apporter leur aide.
Car sans matière à réfléchir, il n'y a pas vraiment de problème à résoudre.
C'est l'exemple des éternels :
- ma voiture ne marche plus, ou du
- docteur j'ai mal
Quoi que je peux dores et déjà t'annoncer que l'utilisation de tableaux n'est préconisée QUE pour afficher des données tabulées, pas pour faire de la mise en page. Une recherche sur le forum te permettra de t'en rendre compte...

Dernière modification par zelu le 07 déc. 2005, 15:27, modifié 1 fois.
WinXP familial / Firefox 2.0 / Thunderbird 1.5.0.7 / Avast! / KPS 4.2.3 / + de détails
Le problème ressemble à celui-ci : http://www.geckozone.org/forum/viewtopic.php?t=32540
Sans code ni lien il va nous être difficile de voir ce qui se passe. Surtout si tu as changé quelque chose depuis
Sans code ni lien il va nous être difficile de voir ce qui se passe. Surtout si tu as changé quelque chose depuis

Arrgh! Sacré copier/coller !calimo a écrit :Le problème ressemble à celui-ci : http://www.geckozone.org/forum/viewtopic.php?t=32540
Sans code ni lien il va nous être difficile de voir ce qui se passe. Surtout si tu as changé quelque chose depuis
Le site est http://www.comeonjoomla.net mais j'ai effectivement corrigé le problème depuis.
Par contre, j'ai mis une copie du template sur un Joomla! installé chez Free si vous désirez vous pencher sur le problème...
Aaaargh !!! Pourquoi est-ce que les codes sortis par les CMS doivent toujours être si compliqués
En plus je ne suis pas sur de bien situer le problème là la page http://laurent.belloeil.free.fr/ me semble tout à fait correcte


En plus je ne suis pas sur de bien situer le problème là la page http://laurent.belloeil.free.fr/ me semble tout à fait correcte

Le problème se situe en ligne 52 :
Pour que l'image s'affiche, tu vois que j'ai été obligé de la coder en dur alors que c'est le div juste après qui doit la définir. Donc si je mets à la place:
tu peux voir mainteant mon problème. Je laisse la colonne de droite corrigée pour apprécier la différence.
Et voici la définition dans le CSS :
L'adresse de l'image est relative par rapport à l'emplacement du fichier CSS : /templates/b_metal/css/
ce qui donne : /templates/b_metal/images/ms_bm_05.gif
donc le problème ne vient pas de là. De plus, ça fonctionne bien sous IE et FF 1.07
Voilà. Donc maintenant tu as l'erreur à gauche et la soultion (pas élégante car plus de CSS) à droite.
Code : Tout sélectionner
<td style="background-image:url('http://laurent.belloeil.free.fr/templates/b_metal/images/ms_bm_05.gif'); background-repeat:repeat-y;"><div id="left_shadow">
Code : Tout sélectionner
<td><div id="left_shadow">
Et voici la définition dans le CSS :
Code : Tout sélectionner
#left_shadow{
background: url(../images/ms_bm_05.gif) repeat-y;
width: 17px;
height: 100%;
}
ce qui donne : /templates/b_metal/images/ms_bm_05.gif
donc le problème ne vient pas de là. De plus, ça fonctionne bien sous IE et FF 1.07
Voilà. Donc maintenant tu as l'erreur à gauche et la soultion (pas élégante car plus de CSS) à droite.
En fait, si tu regardes attentivement, au milieu de la hauteur de cette colonne de gauche tu as un petit trait avec ton images de fond. Si tu mets une bordure rouge à #left_shadow tu le vois clairement apparaître. Il fait visiblement 1px de haut.
Tu as mis height:100%; à ton #left_shadow. 100% de l'élément parent, td donc. Mais quelle est la hauteur de ce td ? Je dois avouer que la mise en page par tableaux a de très nombeux mystères pour moi, je pense que le problème viens de là, mais savoir pourquoi ou comment le résoudre…
Tu as mis height:100%; à ton #left_shadow. 100% de l'élément parent, td donc. Mais quelle est la hauteur de ce td ? Je dois avouer que la mise en page par tableaux a de très nombeux mystères pour moi, je pense que le problème viens de là, mais savoir pourquoi ou comment le résoudre…

La hauteur du TD est à 100%. OK.
Mais sa hauteur est normalement commandée par le TR, qui l'est lui-même par le contenu des autres cellule de la ligne (au minimum) :
Avec l'extension WebDevelopper, si je fais Outline TabCells, on voit clairement que le TD ne fait pas 1px de hauteur
Si je suis ton explication, ça signifie qu'il calcule le nombre de répétitions nécessaires par rapport à la hauteur du contenu de la cellule seule et qui est une image de 1px de haut, sans tenir compte du parent TR...
C'est un vrai fonctionnaire !
Ou alors il existe une règle du W3C que j'ignore?
Mais sa hauteur est normalement commandée par le TR, qui l'est lui-même par le contenu des autres cellule de la ligne (au minimum) :
(TR est le conteneur de TD et .h est la propriété 'hauteur')TD.h=100%(TR.h)
Avec l'extension WebDevelopper, si je fais Outline TabCells, on voit clairement que le TD ne fait pas 1px de hauteur
Si je suis ton explication, ça signifie qu'il calcule le nombre de répétitions nécessaires par rapport à la hauteur du contenu de la cellule seule et qui est une image de 1px de haut, sans tenir compte du parent TR...
Il calcule avec des oeillères, alors.TR -> H = h du TD le plus grand
|_ 100%=1 px donc on ne répète pas l'image de fond!
|_ 100%=n px (>1)
|_...
|_...
|_...
C'est un vrai fonctionnaire !
Ou alors il existe une règle du W3C que j'ignore?
La mise en page des tableaux est incroyablement compliquée comme plusieurs sujets l'attestent. Il y a plein de règles cachées, et je ne serais pas étonné que ce soit le cas ici. À vrai dire je n'en sais vraiment rienGlobulez a écrit :Ou alors il existe une règle du W3C que j'ignore?


Je ne peux que te conseiller de te passer de ces tableaux qui ne sont pas du tout prévus pour faire de la mise en page, qui posent de gros problèmes d'accessibilité et accessoirement aussi de mise en page (ça commence à faire beaucoup là)

Je crois que j'ai trouvé :
(ce pargraphe a disparu dans la traduction que tu as indiqué)
Le problème est que je suis plutôt médiocre en mise en page et surtout en CSS! Je me suis essyaé à modifier le template SolarFlare qui est livré de base dans Joomla! et fait beaucoup appel au CSS mais les résultats se sont révélés catastrophiques !
En ce moment, je suis parti sur Ajax.NET(en plus des trad. pour Joomla!) alors on verra plus tard...
C'est dit un peu après le milieu (10.5) de cette page.Note that the height of the containing block of an absolutely positioned element is independent of the size of the element itself, and thus a percentage height on such an element can always be resolved. However, it may be that the height is not known until elements that come later in the document have been processed.
(ce pargraphe a disparu dans la traduction que tu as indiqué)
Le problème est que je suis plutôt médiocre en mise en page et surtout en CSS! Je me suis essyaé à modifier le template SolarFlare qui est livré de base dans Joomla! et fait beaucoup appel au CSS mais les résultats se sont révélés catastrophiques !

En ce moment, je suis parti sur Ajax.NET(en plus des trad. pour Joomla!) alors on verra plus tard...
Because Open Source matters...
Comme je n'aime pas laisser la machine gagner, j'ai fait siffler ma cocotte minute sur ces histoire d'héritage contenant/contenu et j'ai regardé à nouveau le code.
Il m'a soudain paru étrange de mettre un DIV dans un TD puisque ce DIV doit s'appliquer à tout le TD et pas seulement son contenu.
C'est ainsi que j'ai trouvé la solution :Tu peux vérifier, c'est bon.
Et en plus, c'est plus clair !
Encore bravo à FireFox de nous obliger à travailler proprement.

PS : Ca serait sympa si un modo pouvait mettre [réglé] dans le titre du fil car je l'avais ouvert de façon anonyme.

C'est ainsi que j'ai trouvé la solution :
Code : Tout sélectionner
<td id="left_shadow"></td>
Et en plus, c'est plus clair !
Encore bravo à FireFox de nous obliger à travailler proprement.





PS : Ca serait sympa si un modo pouvait mettre [réglé] dans le titre du fil car je l'avais ouvert de façon anonyme.
Because Open Source matters...
Qui est en ligne ?
Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 2 invités