OVH Cloud OVH Cloud

Enlever encadrement des liens

3 réponses
Avatar
Christophe, www.elitemediacompany.com
Salut,

J'aimerais enlever l'encadrement pointillé au clic de tous les liens d'une
page.
Donc, en CSS, il y a la propriété outline qui malheureusement ne fonctionne
pas avec IE. La seule solution que j'ai trouvé pour IE est d'ajouter à
chaque lien : onfocus="this.blur();" ce qui fonctionne très bien.

J'aimerais appliquer cette règle à l'ensemble des balises <a> de la page,
par exemple par une fonction dans le HEAD mais je n'y parviens pas.

Quelqu'un pourrait t'il m'aider ?

Christophe

3 réponses

Avatar
Laurent vilday
J'aimerais enlever l'encadrement pointillé au clic de tous les liens
d'une page.
Donc, en CSS, il y a la propriété outline qui malheureusement ne
fonctionne pas avec IE. La seule solution que j'ai trouvé pour IE est
d'ajouter à chaque lien : onfocus="this.blur();" ce qui fonctionne très
bien.

J'aimerais appliquer cette règle à l'ensemble des balises <a> de la
page, par exemple par une fonction dans le HEAD mais je n'y parviens pas.


window.onload = function()
{
/*@cc_on
var all = document.getElementsByTagName('a');
for ( var i = all.length; i--; )
{
var lien = all[i];
lien.onfocus = function() { this.blur(); };
}
@*/
};

J'ai mis des commentaires conditionnels parce que c'est que pour IE, je
ne sais pas si IE7 a le "probleme" (c'est rien en comparaison des bruits
d'un click :)

Si tu veux cibler que IE6 dans ton JScript entre commentaires
conditionnels, tu as accès à la variable @_jscript_version. IE6 est en
version 5.6 et IE7 en v 5.7. Ce qui donne

/*@cc_on
var version = @_jscript_version;
if ( version == 5.7 ) { alert('IE7'); }
else if ( version == 5.6 ) { alert('IE6'); }
else { alert('IE version ' + version); }
@*/

Ou, au lieu de scripter, peut être utiliser les .htc

- fichier Afocus.htc :

<?xml version="1.0"?>
<public>
<component>
<attach event="onfocus" onevent="gotFocus()" />
</component>

<script type="text/Jscript">
function gotFocus() { element.blur(); }
</script>

</public>

- et dans la css, avec le hack * html pour IE6 seulement :

* html a { behavior:url("Afocus.htc") }

- ou dans le fichier HTML :

<!--[if lte IE 6]>
<style type="text/css">
a { behavior:url("Afocus.htc") }
</style>
<![endif]-->

PS : je n'arrive pas à avoir cette bordure autour des balises <A> sous
IE6, hors je sais qu'elle existe, je me rappelle l'avoir vu quand
j'utilisais IE. Qqun saurait ce que j'ai pu changer dans IE6 ? merci

--
laurent

Avatar
pere.noel
Laurent vilday wrote:

Ou, au lieu de scripter, peut être utiliser les .htc


connaissait pas ces htc...
--
Père Noël

Avatar
Christophe, www.elitemediacompany.com
window.onload = function()
{
/*@cc_on
var all = document.getElementsByTagName('a');
for ( var i = all.length; i--; )
{
var lien = all[i];
lien.onfocus = function() { this.blur(); };
}
@*/
};

J'ai mis des commentaires conditionnels parce que c'est que pour IE, je ne
sais pas si IE7 a le "probleme" (c'est rien en comparaison des bruits d'un
click :)


En fait on ne peut pas appeler ca un "probleme" car ca sert bien pour ceux
qui naviguent au clavier d'avoir un contour sur les liens. Dans mon cas,
c'est une page ou la navigation n'est pas essentielle mais cet entourage
rendait la chose inesthetique.

C'est résolu grâce à toi. Merci aussi pour l'explication sur les
commentaires conditionnels, je ne connaissais pas, très efficace pour
appliquer certains hacks uniquement au navigateur concerné.

Sur ce, les huitres et le champagne m'attendent, je vous souhaite à tous et
à toutes une excellente année 2007 !

Christophe