Bonjour,
Pour le coup c'est à mon tour de poser une question alors accrochez-vous, j'en profite.
J'ai dans l'idée d'apporter à chacun de mes liens externes une identification visuelle sous forme d'icône.
L'idée est de produire après chaque lien externe un contenu généré qui contient l'icône en question.
Le format retenu pour l'icône est le svg ; pas idéal car ça ne me semble pas très flexible mais hormis le détail que je vais vous exposer, le svg présente des avantages indéniables je trouve.
De fait j'ai placé mon icône comme faisant partie du fond de mon contenu généré, voici où j'en suis à l'instant :
Jusqu'ici tout va bien puisque mon icône vient bien se placer à la droite de mes liens externes.
En couleur
C'est la que le bas blesse. L'idée serait que l'icône prenne la couleur de son parent, d'où le fill=currentColor qu'on aperçoit dans l'url du background.
Après quelques essais, je peux déjà conclure que l'attribut currentColor s'utilise dans le même contexte que inherit et ne fonctionnent que lorsque une couleur a été explicitement énoncée.
Edit (29/04/16) : Même en spécifiant explicitement une couleur au conteneur, l'héritage de la couleur n'est pas appliqué dans ce contexte.
De fait, on pourrait s'attendre à une application en cascade dans le cas qui m'occupe.
Mais il n'en est rien, la couleur du lien ne se répercute pas sur l'icône.
J'ai tenté aussi de blouser en ajoutant style="color: inherit" directement sur la balise Svg mais il n'est pas dupe et laisse l'icône en noir.
Par contre, si j'applique une couleur explicite sur la balise svg, celle-ci s'applique (par l'utilisation de style="color: red;" fill="currentColor" => applique du rouge).
Edit (29/04/16) : ce serait valable si toutes les icônes devaient avoir la même couleur.
Appliquer une couleur sur le contenu généré ne fonctionne pas non plus quelques soient les indications portées au sein de Svg.
De fait je me trouve un peu dans l'impasse. Quelqu'un saurait-il comment coloriser l'icône de façon contextuelle ou dois-je revoir le format d'intégration de celle-ci selon vous ?
Merci.
Modifié par Greg_Lumiere (06 May 2016 - 13:16)
Pour le coup c'est à mon tour de poser une question alors accrochez-vous, j'en profite.
J'ai dans l'idée d'apporter à chacun de mes liens externes une identification visuelle sous forme d'icône.
L'idée est de produire après chaque lien externe un contenu généré qui contient l'icône en question.
Le format retenu pour l'icône est le svg ; pas idéal car ça ne me semble pas très flexible mais hormis le détail que je vais vous exposer, le svg présente des avantages indéniables je trouve.
De fait j'ai placé mon icône comme faisant partie du fond de mon contenu généré, voici où j'en suis à l'instant :
<!-- mes liens respectent toujours ce format -->
<a href="http://..." target="_blank">un lien externe</a>
<br>
<a href="/bdsjgdfhsgfk.php">un lien interne</a>
[target="_blank"][href^="http"]:after { /* <= ici je dédouble par précaution car je ne sais pas si target=_blank ne serait utilisé dans un autre contexte */
content: '';
background: url('data:image/svg+xml,<svg fill="currentColor" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 16 14"><path d="M 9.9998e-7,12.836761 0.02286052,8.6162988 0.04000016,4.395835 C 0.0571398,3.4313245 0.05142992,3.4371696 1.0971429,3.4371696 l 4.3257149,0 4.3257119,0 -0.8171408,0.8417551 -0.8171438,0.8417541 -3.2171432,0.017533 -3.2171423,0.017533 0,3.5832996 0,3.5833056 4.7314294,0.01753 4.731427,0.01753 0,-2.250523 0,-2.2505256 0.822858,-0.835909 0.822855,-0.8359101 0,3.3962482 0,3.3962445 c -0.0057,0.999584 0,0.999584 -0.93714,1.022965 l -5.3428571,-0.02923 -5.2799998,0 C 0.00571488,13.97077 0.00571488,13.96497 0,12.836738 Z"/><path d="m 13.645712,6.9795524 0,-2.7766202 -2.622854,2.6830945 C 9.5771423,8.3649431 8.3657158,9.5749612 8.3257136,9.5749612 c -0.039999,0 -0.4457146,-0.3858024 -0.9085708,-0.8592884 L 6.5771435,7.8563813 9.2342855,5.132369 11.897142,2.414204 l -2.7142844,0 -2.7142858,0 L 7.645714,1.2041828 8.8228582,5.7220459e-6 l 3.5885718,0 3.588569,0 0,3.6709853779541 0,3.6709843 -1.177143,1.2041751 -1.177144,1.204177 0,-2.7766202 z"/></svg>') no-repeat;
display: inline-block;
width: 16px;
height: 14px;
}
Jusqu'ici tout va bien puisque mon icône vient bien se placer à la droite de mes liens externes.
En couleur
C'est la que le bas blesse. L'idée serait que l'icône prenne la couleur de son parent, d'où le fill=currentColor qu'on aperçoit dans l'url du background.
Après quelques essais, je peux déjà conclure que l'attribut currentColor s'utilise dans le même contexte que inherit et ne fonctionnent que lorsque une couleur a été explicitement énoncée.
Edit (29/04/16) : Même en spécifiant explicitement une couleur au conteneur, l'héritage de la couleur n'est pas appliqué dans ce contexte.
De fait, on pourrait s'attendre à une application en cascade dans le cas qui m'occupe.
Mais il n'en est rien, la couleur du lien ne se répercute pas sur l'icône.
J'ai tenté aussi de blouser en ajoutant style="color: inherit" directement sur la balise Svg mais il n'est pas dupe et laisse l'icône en noir.
Par contre, si j'applique une couleur explicite sur la balise svg, celle-ci s'applique (par l'utilisation de style="color: red;" fill="currentColor" => applique du rouge).
Edit (29/04/16) : ce serait valable si toutes les icônes devaient avoir la même couleur.
Appliquer une couleur sur le contenu généré ne fonctionne pas non plus quelques soient les indications portées au sein de Svg.
De fait je me trouve un peu dans l'impasse. Quelqu'un saurait-il comment coloriser l'icône de façon contextuelle ou dois-je revoir le format d'intégration de celle-ci selon vous ?
Merci.
Modifié par Greg_Lumiere (06 May 2016 - 13:16)