OVH Cloud OVH Cloud

[CSS] Pas simple: assigner une background-image à un tag inline

10 réponses
Avatar
Patrick 'Zener' Brunet
Bonsoir.

J'ai un problème pas simple du tout.

Le contexte est typiquement un lien "précédent" ou "suivant" (en fait les
deux se suivent dans la même ligne) dont on veut faire disparaître le texte
pour le remplacer par une flèche graphique, l'image dépendant de la charte
graphique (donc en CSS).

Donc le texte est dans un <span> lui même logé dans un <a>.

Si on applique:

a
{
background: transparent url("----/Fleche.gif") no-repeat;
}

a span
{
display: none;
}

Ca ne marche pas parce que le<a> vide se tasse et ne permet donc pas
d'afficher la flèche.

Impossible de lui assigner un attribut "width: 20px;" parce que c'est un
inline (et ça doit le rester sinon coupure de la ligne).

Avez-vous une idée de ce que je pourrais fourrer dans le <a> qui remplisse
ces conditions ?

* ne se voit pas,
* ne se prononce pas même en accès 100% texte (sans feuille de style) avec
un navigateur vocal,
====> Donc pas un GIF transparent de remplissage bien sûr,
* permet le contrôle de la largeur du <a> par la feuille de style en mode
graphique,
====> Donc ne fixe pas une largeur arbitraire dans le code HTML,
* sans JavaScript évidemment...

Pas évident. Pourtant c'est un problème courant...

Merci pour toute suggestion.
Cordialement,

--
/***************************************\
* Patrick BRUNET
* E-mail: lien sur http://zener131.free.fr/ContactMe
\***************************************/

10 réponses

Avatar
ASM
Patrick 'Zener' Brunet a écrit :
Bonsoir.

J'ai un problème pas simple du tout.

Le contexte est typiquement un lien "précédent" ou "suivant" (en fait les
deux se suivent dans la même ligne) dont on veut faire disparaître le texte
pour le remplacer par une flèche graphique, l'image dépendant de la charte
graphique (donc en CSS).

Donc le texte est dans un <span> lui même logé dans un <a>.

Si on applique:

a
{
background: transparent url("----/Fleche.gif") no-repeat;
}

a span
{



visibility: hidden;
}



et hop !




--
Stephane Moriaux et son [moins] vieux Mac
Avatar
Patrick 'Zener' Brunet
Bonjour.

Je réponds à ASM
qui dans 43ed0a35$0$20148$ a écrit :
Patrick 'Zener' Brunet a écrit :
Bonsoir.

J'ai un problème pas simple du tout.

Le contexte est typiquement un lien "précédent" ou "suivant" (en
fait les deux se suivent dans la même ligne) dont on veut faire
disparaître le texte pour le remplacer par une flèche graphique,
l'image dépendant de la charte graphique (donc en CSS).

Donc le texte est dans un <span> lui même logé dans un <a>.

Si on applique:

a
{
background: transparent url("----/Fleche.gif") no-repeat;
}

a span
{



visibility: hidden;
}



et hop !



Ben non, parce que la largeur du "blanc" dépend du texte.
Tout au plus peut-on assigner font-size:1px; mais ça reste pas terrible.

En fait je l'ai eu cette nuit en restructurant pour donner un padding
unilatéral au <a> pour faire le trou, ce qui permet enfin de mettre
display:none; au <span>.
J'y avais déjà pensé, mais je ne me souviens plus quel gag idiot ça me
faisait...

Reste un tout petit détail, sympa pour l'accessibilité:
Il faudrait que la flèche s'adapte par étirement à la taille du texte.

J'aimerais donc bien lui mettre un background-position approprié pour avoir
un étirement vertical à 100%, pour autant que la largeur suive bien sûr.

Vous avez une idée dans ce sens ?

Merci de votre aide ;-)

Cordialement,

--
/***************************************
* Patrick BRUNET
* E-mail: lien sur http://zener131.free.fr/ContactMe
***************************************/
Avatar
ASM
Patrick 'Zener' Brunet a écrit :
Bonjour.

Je réponds à ASM
qui dans 43ed0a35$0$20148$ a écrit :

et hop !



Ben non, parce que la largeur du "blanc" dépend du texte.
Tout au plus peut-on assigner font-size:1px; mais ça reste pas terrible.

En fait je l'ai eu cette nuit en restructurant pour donner un padding
unilatéral au <a> pour faire le trou, ce qui permet enfin de mettre
display:none; au <span>.
J'y avais déjà pensé, mais je ne me souviens plus quel gag idiot ça me
faisait...

Reste un tout petit détail, sympa pour l'accessibilité:
Il faudrait que la flèche s'adapte par étirement à la taille du texte.



décidement je ne comprends rien à ce que tu veux faire

M'enfin ... peut-être est-ce çà que tu veux :
http://perso.wanadoo.fr/stephane.moriaux/truc/boutons_prec_suiv/

J'aimerais donc bien lui mettre un background-position approprié pour avoir
un étirement vertical à 100%, pour autant que la largeur suive bien sûr.



à mon idée (et comme donné ci-dessus) mieux vaut se contenter de
centrer les images / hauteur



--
Stephane Moriaux et son [moins] vieux Mac
Avatar
Nicolas Krebs
Patrick 'Zener' Brunet écrivit dans l'article
news:43ed06b2$0$1233$

Bonsoir.



Bonjour,

J'ai un problème pas simple du tout.

Le contexte est typiquement un lien "précédent" ou "suivant"



<link rel="Prev" type="text/html" href="" />
<link rel="Next" type="text/html" href="" />

http://www.la-grange.net/w3c/html4.01/types.html#type-links
http://www.w3.org/TR/html4/types.html#type-links

(en fait les
deux se suivent dans la même ligne) dont on veut faire disparaître le texte
pour le remplacer par une flèche graphique, l'image dépendant de la charte
graphique (donc en CSS).

Donc le texte est dans un <span> lui même logé dans un <a>.



<span><a href="" class="précédent"><img alt="précédent"/></a></span>
<span><a href=""><img alt="suivant"/></a></span>

a.précédent img {content: url(url-de-l-image);}
a.suivant img {
content: url(url-de-l-image);
width: 5em;
height: 2em;
}

http://www.yoyodesign.org/doc/w3c/css2/generate.html#content
http://www.w3.org/TR/REC-CSS2/generate.html#content
http://www.w3.org/TR/CSS21/generate.html#content
Avatar
Thibaut Allender
On 10/02/2006 22:34, Patrick 'Zener' Brunet wrote :
Pas évident. Pourtant c'est un problème courant...



avec un padding: 0 20px 0 0 au lieu d'un width, ça fonctionnera aussi
sur du inline

--
thibaut allender | http://capsule.org | http://photo.capsule.org
Avatar
Patrick 'Zener' Brunet
Bonjour.

Je réponds à Nicolas Krebs
qui dans 43edeb54$0$163$ a écrit :
Patrick 'Zener' Brunet écrivit dans l'article
news:43ed06b2$0$1233$

J'ai un problème pas simple du tout.

Le contexte est typiquement un lien "précédent" ou "suivant"



<link rel="Prev" type="text/html" href="" />
<link rel="Next" type="text/html" href="" />

http://www.la-grange.net/w3c/html4.01/types.html#type-links
http://www.w3.org/TR/html4/types.html#type-links




Oui, mode de navigation à méditer...

Pour l'instant en fait j'ai des liens insérés dans le contenu d'une page, et
qui font partie d'une sémantique locale.

(en fait les
deux se suivent dans la même ligne) dont on veut faire disparaître
le texte pour le remplacer par une flèche graphique, l'image
dépendant de la charte graphique (donc en CSS).

Donc le texte est dans un <span> lui même logé dans un <a>.



<span><a href="" class="précédent"><img alt="précédent"/></a></span>
<span><a href=""><img alt="suivant"/></a></span>

a.précédent img {content: url(url-de-l-image);}
a.suivant img {
content: url(url-de-l-image);
width: 5em;
height: 2em;
}




Ca bien sûr ça facilite bien les choses techniquement, mais en toute logique
ça devrait pouvoir disparaître du contenu pour aller entièrement dans la
charte graphique.
Effectivement le fait de spécifier l'URL dans la charte est une très bonne
solution : l'image peut être changée ou même devenir un simple texte.
Il faut que je voie ce que ça donne en particulier avec les navigateurs
vocaux (j'ai Opera qui m'épelle les ponctuations, alors je me méfie...).

http://www.yoyodesign.org/doc/w3c/css2/generate.html#content
http://www.w3.org/TR/REC-CSS2/generate.html#content
http://www.w3.org/TR/CSS21/generate.html#content



Oh comme j'aimerais, mais c'est pas bien supporté par "certains navigateurs"
même en version récente, et l'utilisateur doit avoir le choix de leur rester
fidèle.

Merci beaucoup pour ces pistes.
Cordialement,

--
/***************************************
* Patrick BRUNET
* E-mail: lien sur http://zener131.free.fr/ContactMe
***************************************/
Avatar
ASM
Nicolas Krebs a écrit :
Patrick 'Zener' Brunet écrivit dans l'article
news:43ed06b2$0$1233$

Le contexte est typiquement un lien "précédent" ou "suivant"



<link rel="Prev" type="text/html" href="" />
<link rel="Next" type="text/html" href="" />



à une époque, j'avais un navigateur qui affichait ces links
(Mozilla ? )
Je ne les vois et n'y ai pas accès pas dans FireFox.
Quant à iCab, qui supporte qque chose dans cette idée,
il en assure l'affichage
(il me semble qu'il utilise en plus ses propres attributs).

Donc le texte est dans un <span> lui même logé dans un <a>.



<span><a href="" class="précédent"><img alt="précédent"/></a></span>
<span><a href=""><img alt="suivant"/></a></span>



il était indiqué le contraire ( <a><span>texte</span></a> )
où est le texte ?

a.précédent img {content: url(url-de-l-image);}
a.suivant img {
content: url(url-de-l-image);
width: 5em;
height: 2em;
}



Je suppose que ce n'est pas pour IE ?

--
Stephane Moriaux et son [moins] vieux Mac
Avatar
Patrick 'Zener' Brunet
Bonjour.

Je réponds à ASM
qui dans 43edcea3$0$18337$ a écrit :
Patrick 'Zener' Brunet a écrit :
Bonjour.

Je réponds à ASM
qui dans 43ed0a35$0$20148$ a écrit :

et hop !



Ben non, parce que la largeur du "blanc" dépend du texte.
Tout au plus peut-on assigner font-size:1px; mais ça reste pas
terrible.

En fait je l'ai eu cette nuit en restructurant pour donner un padding
unilatéral au <a> pour faire le trou, ce qui permet enfin de mettre
display:none; au <span>.
J'y avais déjà pensé, mais je ne me souviens plus quel gag idiot ça
me faisait...

Reste un tout petit détail, sympa pour l'accessibilité:
Il faudrait que la flèche s'adapte par étirement à la taille du
texte.



décidement je ne comprends rien à ce que tu veux faire




Typiquement, quand avec Firefox on fait Ctrl + plusieurs fois, le texte
grossit et je voudrais que la flèche suive même si ça fait un peu de
crénelage (étant entendu qu'elle aurait de la réserve).

Tout est dimensionné en ex, pas en px, et ça se passe bien partout. Si je
pouvais spécifier un background-height en % ou en ex, et que le ratio
height/width reste constant, ce serait parfait.

M'enfin ... peut-être est-ce çà que tu veux :
http://perso.wanadoo.fr/stephane.moriaux/truc/boutons_prec_suiv/




C'est taillé en px, alors ça ne résout pas mon problème. Je vais essayer de
voir ce que ça donnerait dimensionné en ex.

J'aimerais donc bien lui mettre un background-position approprié
pour avoir un étirement vertical à 100%, pour autant que la largeur
suive bien sûr.



à mon idée (et comme donné ci-dessus) mieux vaut se contenter de
centrer les images / hauteur



Mmmmmh, pas forcément du fait de l'interligne, surtout si la taille reste
fixe.

Je ferai un essai.

Mais bon, entre temps le coup du padding a résolu le problème essentiel,
merci d'avoir donné l'impulsion.

Cordialement,

--
/***************************************
* Patrick BRUNET
* E-mail: lien sur http://zener131.free.fr/ContactMe
***************************************/
Avatar
ASM
Patrick 'Zener' Brunet a écrit :
Bonjour.

Je réponds à ASM
qui dans 43edcea3$0$18337$ a écrit :

M'enfin ... peut-être est-ce çà que tu veux :
http://perso.wanadoo.fr/stephane.moriaux/truc/boutons_prec_suiv/



C'est taillé en px, alors ça ne résout pas mon problème. Je vais essayer de
voir ce que ça donnerait dimensionné en ex.



Les images sont en px ...
il faut donc par margin réserver la place pour la flèche
et comme la mienne n'a pas de queue je fixe çà en px

pour tout le reste c'est libre (donc adaptable avec agrandissement affichage)

à mon idée (et comme donné ci-dessus) mieux vaut se contenter de
centrer les images / hauteur



Mmmmmh, pas forcément du fait de l'interligne,



l'interligne ici est en px
(car mes navigateurs s'en arrangent lors d'agrandissements)
mais s'il est en em (pour contenter IE Windows) (corrigé et en ligne)
hop! adaptation à taille de fonte

surtout si la taille reste
fixe.



je parle en cas d'images de fond et de modif de taille de police :
si tu augmentes la taille et si l'image de fond n'est pas centrée
çà ne va pas suivre l'évolution de l'interlignage.


--
Stephane Moriaux et son [moins] vieux Mac
Avatar
Nicolas Krebs
ASM écrivit dans l'article news:43edf58c$0$20171$

Nicolas Krebs a écrit :
> Patrick 'Zener' Brunet écrivit dans l'article
> news:43ed06b2$0$1233$
>
>>Le contexte est typiquement un lien "précédent" ou "suivant"
>
> <link rel="Prev" type="text/html" href="" />
> <link rel="Next" type="text/html" href="" />

à une époque, j'avais un navigateur qui affichait ces links
(Mozilla ? )
Je ne les vois et n'y ai pas accès pas dans FireFox.



news:43e20dc0$0$608$
news:438d7201$0$18633$
http://cdn.mozdev.org/linkToolbar/
http://addons.mozilla.org/extensions/moreinfo.php?id49
news:
news:
news:

Quant à iCab, qui supporte qque chose dans cette idée,
il en assure l'affichage
(il me semble qu'il utilise en plus ses propres attributs).


> a.précédent img {content: url(url-de-l-image);}
> a.suivant img {
> content: url(url-de-l-image);
> width: 5em;
> height: 2em;
> }

Je suppose que ce n'est pas pour IE ?



Cela dépend de quelle version. Je pose de de grand espoirs sur la
version 12.