Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Prb background-image sur un TR

20 réponses
Avatar
Pierre Goiffon
Bonjour à tous, prb eu aujourd'hui en mettant en forme une liste d'éléments.

La page de démo :
http://pgoiffon.free.fr/_temp/tr_background.html

Une image en repeat est appliquée en background-image sur le TR du milieu.

Sur Fx pas de prb.
Sur IE 6 7 ou 8, Chrome 9 et Safari 5, l'image pose des prb de repeat :
en fait c'est comme si on l'avait appliquée aux td directement !

J'ai pensé appliquer l'image de fond au tableau directement, et rendre
transparente uniquement les lignes pour lesquelles j'ai besoin de cette
image... mais ces lignes sont l'exception, et j'aurais potentiellement
besoin de plusieurs images pour plusieurs types de lignes !
A noter aussi que le tableau dans l'application d'origine prend toute la
place du viewport possible, il n'est pas envisageable de fixer la
largeur du tableau et de chaque cellule (car contient des libellés
potentiellement longs). Idem, n'avoir qu'une seule cellule parait trop
compliqué à implémenter pour le traitement serveur qui génère le tableau
(de la complexité apportée pour pas grand chose).

Donc la seule méthode de contournement applicable que j'ai trouvé a été
de changer pour des hachures verticales... mais c'était quand même
nettement plus joli avec les hachures "inclinées" !

J'ai trouvé d'autres personnes ayant le prb. En particulier
http://snook.ca/archives/html_and_css/applying_a_back, qui donne pas mal
de choses dans les commentaires. Mais je ne vois rien d'applicable pour
moi (dont la dernière solution avec le position:relative, car mon
tableau est dans un conteneur et avec un max-width...).
Je suis alors tombé sur
http://www.sitepoint.com/forums/showpost.php?s=f1a1fd73fe89b758c734d6d9ad43212d&p=3922787&postcount=6,
et ce contournement fonctionne parfaitement pour IE6, 7 et 8.

Je reste par contre avec le prb sur Safari 5 et Chrome 9... quelqu'un
aurait une solution pour ces navigateurs webkit ?

10 réponses

1 2
Avatar
SAM
Le 11/02/11 18:15, Pierre Goiffon a écrit :
Bonjour à tous, prb eu aujourd'hui en mettant en forme une liste
d'éléments.

La page de démo :
http://pgoiffon.free.fr/_temp/tr_background.html

Une image en repeat est appliquée en background-image sur le TR du milieu.



D'après ce que je crois, on n'applique rien à un TR ! ! !
Allez, si, une bordure ?
En tous cas, pas un fond.

le TD répond au stylage du TR par héritage

à savoir :
les styles non-héritables ne seront donc pas vus par les TD dont le TR a
le style (border par exemple)

Sur Fx pas de prb.



An'éfé. Maizil a tord.

Sur IE 6 7 ou 8, Chrome 9 et Safari 5, l'image pose des prb de repeat :
en fait c'est comme si on l'avait appliquée aux td directement !



Normal (à mon idée que je partage)
Bien que ... non ... Opera ne capte pas (fonds bleus partout)

M'enfin, c'est de ta fôte aussi !

.truc TD { background: silver }

<tr class="truc"><td>donnée 1</td><td>donnée 2</td></tr>
<tr><td>donnée 3</td><td>donnée 4</td></tr>
<tr class="truc"><td>donnée 2</td><td>donnée 6</td></tr>

J'ai pensé appliquer l'image de fond au tableau directement, et rendre
transparente uniquement les lignes pour lesquelles j'ai besoin de cette
image... mais ces lignes sont l'exception, et j'aurais potentiellement
besoin de plusieurs images pour plusieurs types de lignes !



là c'est pareil ... c'est oublier les histoires d'héritages ...

et puis ... il faut être certain que l'image a une hauteur bien
supérieure à une ligne ... et on ne peut en utiliser qu'une

sinon ... oui ... ça ne pèse pas plus que de l'avoir dans le TR

A noter aussi que le tableau dans l'application d'origine prend toute la
place du viewport possible, il n'est pas envisageable de fixer la
largeur du tableau et de chaque cellule (car contient des libellés
potentiellement longs). Idem, n'avoir qu'une seule cellule parait trop
compliqué à implémenter pour le traitement serveur qui génère le tableau
(de la complexité apportée pour pas grand chose).



??? s'il est capable d'écrire class="truc"
ça doit pas beaucoup lui peser d'écrire
<table class="truc"><tr><td>...

Le blème : aligner les nouvelles colonnes ...


Je reste par contre avec le prb sur Safari 5 et Chrome 9... quelqu'un
aurait une solution pour ces navigateurs webkit ?



Non

Pour te consoler et voir qu'il y a pire,
avec Safari, essaie :
javascript:document.getElementById('exemple1').rows[2].style.backgroundSize="cover";
dans le champ d'adresse de ta page de démo


--
Stéphane Moriaux avec/with iMac-intel
Avatar
Olivier Miakinen
Le 11/02/2011 18:15, Pierre Goiffon a écrit :
Bonjour à tous, prb eu aujourd'hui en mettant en forme une liste d'éléments.

La page de démo :
http://pgoiffon.free.fr/_temp/tr_background.html

[...]

Donc la seule méthode de contournement applicable que j'ai trouvé a été
de changer pour des hachures verticales...



Note que ce n'est pas tellement mieux avec les hachures verticales.
D'accord il n'y a plus de solution de continuité, mais ça fait des
bandes de largeurs différentes.

[...]
Je suis alors tombé sur
http://www.sitepoint.com/forums/showpost.php?sña1fd73fe89b758c734d6d9ad43212d&p922787&postcount=6,
et ce contournement fonctionne parfaitement pour IE6, 7 et 8.



Ah oui, en effet.

Je reste par contre avec le prb sur Safari 5 et Chrome 9... quelqu'un
aurait une solution pour ces navigateurs webkit ?



Désolé, je n'ai pas d'idée. Plus exactement, celles que j'ai eues ont
déjà été proposées sur la page de Jonathan Snook. Quoique... non, il
y en a peut-être une à tester, si jamais ça te convient : prévoir un
TBODY pour chaque ligne qui doit avoir ces hachures, et appliquer le
background aux TBODY plutôt qu'aux TR. Je croise les doigts en espérant
que ça marche...

Cordialement,
--
Olivier Miakinen
Avatar
rm
Salut,
Le vendredi 11 février 2011 à 18:15, Pierre Goiffon a écrit :

http://pgoiffon.free.fr/_temp/tr_background.html

Une image en repeat est appliquée en background-image sur le TR du milieu.



Je suis peut-être bigleux et très noob dans le domaine mais je ne vois pas
de "background-image" dans tes styles :-/

J'ai retrouvé dans mes signets un exemple de tableau assez "stylé" avec du
background-image :
http://files.myopera.com/dstorey/experiments/iTunesTable.html
mais je ne sais pas s'il fonctionne avec les vieux navigateur (IE8 et
avant). Il s'affiche toutefois bien dans IE9 RC.
En espérant qu'il te soit d'une quelconque utilité :-]

@+
--
rm
Avatar
Olivier Miakinen
Le 11/02/2011 20:29, rm a écrit :

http://pgoiffon.free.fr/_temp/tr_background.html

Une image en repeat est appliquée en background-image sur le TR du milieu.



Je suis peut-être bigleux et très noob dans le domaine mais je ne vois pas
de "background-image" dans tes styles :-/



Il est implicite (propriété raccourcie) :
background: url("stripes_blue.png") repeat;
Avatar
Olivier Miakinen
Le 11/02/2011 20:00, SAM a écrit :

La page de démo :
http://pgoiffon.free.fr/_temp/tr_background.html

Une image en repeat est appliquée en background-image sur le TR du milieu.



D'après ce que je crois, on n'applique rien à un TR ! ! !
Allez, si, une bordure ?
En tous cas, pas un fond.



Il n'y a pas de raison qu'il soit interdit d'appliquer un fond à une
ligne. On peut même en appliquer un à une colonne !
<http://www.yoyodesign.org/doc/w3c/css2/tables.html#q4>

le TD répond au stylage du TR par héritage



La valeur par défaut de background-image n'est pas inherit mais none, et
la valeur par défaut de background-color est transparent.

Cordialement,
--
Olivier Miakinen
Avatar
Pierre Goiffon
Bonjour,

On 11 fév, 20:29, rm wrote:
http://pgoiffon.free.fr/_temp/tr_background.html



Je suis peut-être bigleux et très noob dans le domaine mais je ne voi s pas
de "background-image" dans tes styles :-/



En fait j'ai définit le background-image et background-repeat en une
fois L21 et 25.

J'ai retrouvé dans mes signets un exemple de tableau assez "stylé" av ec du
background-image :http://files.myopera.com/dstorey/experiments/iTunesTabl e.html



Il y a une image sur le TR contenant les TH, mais pas de soucis de
repeat puisqu'il s'agit d'un dégradé du haut vers le bas.
Une autre image de fond pour l'icône en cours mais sur un TD et
évidemment sans repeat.

Merci quand même, c'est un exemple assez proche du genre de datagrid
utilisé dans mon application (et une très vaste proportion des
applications web de toute façon :) )
Avatar
Pierre Goiffon
On 11 fév, 20:44, Olivier Miakinen <om+ wrote:
http://pgoiffon.free.fr/_temp/tr_background.html





> D'après ce que je crois, on n'applique rien à un TR ! ! !
> Allez, si, une bordure ?
> En tous cas, pas un fond.

Il n'y a pas de raison qu'il soit interdit d'appliquer un fond à une
ligne. On peut même en appliquer un à une colonne !
<http://www.yoyodesign.org/doc/w3c/css2/tables.html#q4>

> le TD répond au stylage du TR par héritage

La valeur par défaut de background-image n'est pas inherit mais none, e t
la valeur par défaut de background-color est transparent.



Intéressant ! Merci de l'info Olivier, ça fait un moment que je
voulais retrouver ce que l'on peut appliquer à une colonne, je me
souvenais que ce n'était que certaines propriétés mais pas moyen de
retrouver où c'était indiqué dans la recommandation !

En fait j'ai été surpris de la réponse de SAM (en particulier
considérant les valeurs par défaut que tu mentionne Olivier), mais il
pensais peut être à un document en particulier ?
En tout cas le besoin d'appliquer une image de fond sur un tr se fait
rapidement voir dès que l'on travaille sur l'équivalent html d'un
composant datagrid, et de très nombreuses applications sont
concernées !
Avatar
Pierre Goiffon
Bonsoir,

SAM sur un point particulier (car j'ai déjà répondu à Olivier qui
t'avait lui-même répondu)

On 11 fév, 20:00, SAM
wrote:
http://pgoiffon.free.fr/_temp/tr_background.html



> J'ai pensé appliquer l'image de fond au tableau directement, et rendr e
> transparente uniquement les lignes pour lesquelles j'ai besoin de cette
> image... mais ces lignes sont l'exception, et j'aurais potentiellement
> besoin de plusieurs images pour plusieurs types de lignes !

là c'est pareil ... c'est oublier les histoires d'héritages ...

et puis ... il faut être certain que l'image a une hauteur bien
supérieure à une ligne ... et on ne peut en utiliser qu'une
sinon ... oui ... ça ne pèse pas plus que de l'avoir dans le TR



Pour les prb de hauteur, c'est une image assez petite, mais en repeat
donc pas de soucis.
Mais vu que je n'aurai que quelques lignes sur lesquelles appliquer
cette image de fond, qu'il faut que je gère la sélection (si ligne
sélectionnée une autre image à appliquer), bref il y a de nombreuses
raisons pour lesquelles appliquer l'image de fond au table n'irait
pas.

> A noter aussi que le tableau dans l'application d'origine prend toute l a
> place du viewport possible, il n'est pas envisageable de fixer la
> largeur du tableau et de chaque cellule (car contient des libellés
> potentiellement longs). Idem, n'avoir qu'une seule cellule parait trop
> compliqué à implémenter pour le traitement serveur qui génère le tableau
> (de la complexité apportée pour pas grand chose).

??? s'il est capable d'écrire class="truc"
ça doit pas beaucoup lui peser d'écrire
  <table class="truc"><tr><td>...



Pas compris ta réponse ? Je parlait de difficultés à utiliser la
méthode du colspan (un seul td avec colspan sur les lignes concernées,
on applique l'image de fond sur ce td) :

<table>
<tr>
<td class="..." colspan="..."
</tr>
<tr>
<td>...</td><td>...</td>....

Le blème : aligner les nouvelles colonnes ...



Pas compris également ?

Pour te consoler et voir qu'il y a pire,
avec Safari, essaie :
javascript:document.getElementById('exemple1').rows[2].style.backgroundSi ze="cover";
dans le champ d'adresse de ta page de démo



Pas Safari sous la main ici, j'essayerai avec ma machine de dev !
Merci d'essayer de me remonter le moral :)
Avatar
Pierre Goiffon
On 11 fév, 20:05, Olivier Miakinen <om+ wrote:
>http://pgoiffon.free.fr/_temp/tr_background.html

Note que ce n'est pas tellement mieux avec les hachures verticales.
D'accord il n'y a plus de solution de continuit , mais a fait des
bandes de largeurs diff rentes.



Oui tout à fait le prb de repeat se pose toujours évidemment, mais
esthétiquement c'est "moins pire" qu'avec des bandes "inclinées"...
Disons que ça passe à peu près. Bon depuis Google m'a remonté la
solution pour les IE, j'ai donc remis les hachures "inclinées".
Avatar
SAM
Le 12/02/11 20:28, Pierre Goiffon a écrit :
On 11 fév, 20:44, Olivier Miakinen<om+ wrote:
http://pgoiffon.free.fr/_temp/tr_background.html





D'après ce que je crois, on n'applique rien à un TR ! ! !
Allez, si, une bordure ?
En tous cas, pas un fond.



Il n'y a pas de raison qu'il soit interdit d'appliquer un fond à une
ligne. On peut même en appliquer un à une colonne !
<http://www.yoyodesign.org/doc/w3c/css2/tables.html#q4>





curieusement, là l'image de fond s'affiche sensiblement correctement
(non les zébrures obliques n'y font pas bon ménage)

le TD répond au stylage du TR par héritage



La valeur par défaut de background-image n'est pas inherit mais none,





Ha? Scrotche !

et la valeur par défaut de background-color est transparent.





donc héritable ... enfin ... ça y ressemble.

Intéressant ! Merci de l'info Olivier, ça fait un moment que je
voulais retrouver ce que l'on peut appliquer à une colonne, je me
souvenais que ce n'était que certaines propriétés mais pas moyen de
retrouver où c'était indiqué dans la recommandation !

En fait j'ai été surpris de la réponse de SAM (en particulier
considérant les valeurs par défaut que tu mentionne Olivier), mais il
pensais peut être à un document en particulier ?



Non.
Je ne connais aucun document.
Il va bien falloir l'admettre !

Juste une remémoration (+/- fiable) d'une discussion à ce propos
(ng javascript).

En tout cas le besoin d'appliquer une image de fond sur un tr se fait
rapidement voir dès que l'on travaille sur l'équivalent html d'un
composant datagrid, et de très nombreuses applications sont
concernées !



Bof ... yaka prendre des images kivonbien.



--
Stéphane Moriaux avec/with iMac-intel
1 2