Conséquences de l'emploi de <div display:none >...

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

seabird
WRInaute impliqué
WRInaute impliqué
 
Messages: 252
Inscription: Lun Déc 01, 2003 17:57

Conséquences de l'emploi de <div display:none >...

Message le Jeu Mar 27, 2008 11:24

Bonjour,

Pour rendre plus lisible le site. J'ai utilisé le <div display:none >...
En fait j'ai une liste de liens comme par exemple :

lien1
lien2
lien3
...

A chaque passage de la sourie sur le lien cela m'affiche le bloc avec les caractéristiques de ce lien ( description, commentaire, photo ...)
J'ai utilisé ce script:

Code: Tout sélectionner
<script>
function visibilite(thingId)
{
var i;
var targetElement;
for(i=1; i<=3i++){
  targetElement = document.getElementById("divid" + i) ;
  targetElement.style.display = "none" ;
}
targetElement = document.getElementById("divid" + thingId) ;
targetElement.style.display = "" ;
}
</script>


Puis ensuite ces lignes:

Code: Tout sélectionner
<a href="site1" onMouseOver="javascript:visibilite('1');" target="_blank">lien1</a><br>
<a href="site2" onMouseOver="javascript:visibilite('2');" target="_blank">lien2</a><br>
<a href="site3" onMouseOver="javascript:visibilite('3');" target="_blank">lien3</a><br>

<div id="divid1" style="display:none;">**** CONTENU LIEN1 *****</div>
<div id="divid2" style="display:none;">**** CONTENU LIEN2 *****</div>
<div id="divid3" style="display:none;">**** CONTENU LIEN3 *****</div>


Mais à la vue de ce que je peux lire. Google peut nous pénaliser pour ce div display none.
Quand est -il exactement ?

Merci


SuperCureuil
WRInaute passionné
WRInaute passionné
 
Messages: 662
Inscription: Ven Mar 09, 2007 9:44

Message le Jeu Mar 27, 2008 12:04

Salut,

Google ne va pas te "pénaliser", simplement il va peut-être passer à côté de la partie concernée puisqu'il ne lit pas complètement le JS. Cela sera donc dommageable pour tes pages mais en aucun cas il n'y aura de pénalité.

Le mieux à faire, c'est d'employer les balises <noscript></noscript> qui sont faites pour ça ...

@+


French Dread
WRInaute accro
WRInaute accro
 
Messages: 1973
Inscription: Mer Mai 07, 2003 10:04

Message le Jeu Mar 27, 2008 12:08

Non Google ne passera pas à coté du contenu, car le contenu de l'infobulle est techniquement accessible : javascript ne fait que modifier la propriété CSS à la volée.

Cela dit c'est moyennement accessible : mieux vaudrait mettre tes div en visible par défaut, et gérer le non-affichage par javascript, ce qui permet de présenter le contenu aux utilisateurs ayant javascript desactivé.


rudddy
WRInaute accro
WRInaute accro
 
Messages: 1638
Inscription: Mer Aoû 01, 2007 19:00

Message le Jeu Mar 27, 2008 12:35

moi je ne penses pas que GG va té penaliser : ton but n'étant pas de cacher du contenu pour faire de l'optimisation, mais plutôt de proposer à GG un véritable contenu (puisque ce sont des menus déroulants) susceptibles d'intéresser l'utilisateur

tonguide
WRInaute accro
WRInaute accro
 
Messages: 1242
Inscription: Ven Nov 28, 2003 18:55

Message le Jeu Mar 27, 2008 12:55

J'avais posé la même question sur un topic (que je n'avais pas créé, donc je serais pas le retrouver) puisque j'utilise la même chose sur un de mes sites. L'une des personnes qui avaient répondu avait fait le test avant après avant (il avait remis son code du début), et à chaque fois qu'il retirait le display:none, il remontait de 2 places dans le classement sur ces mots clés.

Sinon je pense que la méthode de French Dread doit être plutôt bonne. C'est à dire tout en display:block (ou autre selon les cas) et via un window.onload mettre en display:none ensuite, ce qui devrait peut-être gêner moins Google. A tester ...


SuperCureuil
WRInaute passionné
WRInaute passionné
 
Messages: 662
Inscription: Ven Mar 09, 2007 9:44

Message le Jeu Mar 27, 2008 13:38

Cela dit c'est moyennement accessible : mieux vaudrait mettre tes div en visible par défaut, et gérer le non-affichage par javascript, ce qui permet de présenter le contenu aux utilisateurs ayant javascript desactivé.


Bonne idée, moins prise de tête et finalement plus juste par rapport à l'effet du script ...

Merci pour le tuyau :D

seabird
WRInaute impliqué
WRInaute impliqué
 
Messages: 252
Inscription: Lun Déc 01, 2003 17:57

Message le Jeu Mar 27, 2008 13:41

French Dread a écrit:Non Google ne passera pas à coté du contenu, car le contenu de l'infobulle est techniquement accessible : javascript ne fait que modifier la propriété CSS à la volée.

Cela dit c'est moyennement accessible : mieux vaudrait mettre tes div en visible par défaut, et gérer le non-affichage par javascript, ce qui permet de présenter le contenu aux utilisateurs ayant javascript desactivé.


Oui effectivement cela me parait plus judicieux de faire comme ça.

Voila donc ce que j'ai fais:
Code: Tout sélectionner
<script>
function visibilite(thingId)
{
var i;
var targetElement;
for(i=1; i<=3;i++){
  targetElement = document.getElementById("divid" + i) ;
  targetElement.style.display = "none" ;
}
targetElement = document.getElementById("divid" + thingId) ;
targetElement.style.display = "" ;
}
</script>

<script>
function cacher()
var i;
var targetElement;
for(i=1; i<=3;i++){
  targetElement = document.getElementById("divid" + i) ;
  targetElement.style.display = "none" ;
}

</script>


puis

Code: Tout sélectionner
<body onload="cacher()">

<a href="#" onMouseOver="javascript:visibilite('1');" target="_blank">lien1</a><br>
<a href="#" onMouseOver="javascript:visibilite('2');" target="_blank">lien2</a><br>
<a href="#" onMouseOver="javascript:visibilite('3');" target="_blank">lien3</a><br>

<div id="cacher">

<div id="divid1" ><table border=1><tr><td bgcolor=#FFFFFF width=200 height=200>**** CONTENU LIEN1 *****</td></tr></table></div>
<div id="divid2" ><table border=1><tr><td bgcolor=#FF0000 width=200 height=200>**** CONTENU LIEN2 *****</td></tr></table></div>
<div id="divid3" ><table border=1><tr><td bgcolor=#00FF00 width=200 height=200>**** CONTENU LIEN3 *****</td></tr></table></div>

</div>

</body>


Apparemment ça fonctionne correctement. Je pense néanmoins que je n'ai pas optimisé la façon de faire.

tonguide
WRInaute accro
WRInaute accro
 
Messages: 1242
Inscription: Ven Nov 28, 2003 18:55

Message le Jeu Mar 27, 2008 13:49

Si je peux me permettre d'optimiser un peu ton code.

évite le "onload" dans le <body>
Fait plutôt comme ça :
Code: Tout sélectionner
window.onload = cacher;

après la définition de ta fonction

tu fais
Code: Tout sélectionner
<a href="#" onMouseOver="javascript:visibilite('1');" target="_blank">lien1</a><br>

Si il y a un traket blank, si tu clics, même si c'est pas le but, tu vas ouvrir une nouvelle fenêtre avec la même page, ce qui est un peu inutile. Donc retire au moins le target blank. Sinon j'ai tendance à mettre "javascript:void(0)" à la place de "#" pour ne pas remonter (t'façon, le JS est forcement activé si on veut que ça marche donc bon ...)

et
Code: Tout sélectionner
<div id="divid1" ><table border=1><tr><td bgcolor=#FFFFFF width=200 height=200>**** CONTENU LIEN1 *****</td></tr></table></div>

fait plutôt <div id="divid1" class="machin">CONTENU</div>

pour la taille fixe de 200*200, tu le mets dans div.machin {} et pour la couleur, dans #divid1

seabird
WRInaute impliqué
WRInaute impliqué
 
Messages: 252
Inscription: Lun Déc 01, 2003 17:57

Message le Jeu Mar 27, 2008 14:34

tonguide a écrit:
Code: Tout sélectionner
<a href="#" onMouseOver="javascript:visibilite('1');" target="_blank">lien1</a><br>

Si il y a un traket blank, si tu clics, même si c'est pas le but, tu vas ouvrir une nouvelle fenêtre avec la même page, ce qui est un peu inutile. Donc retire au moins le target blank. [code]



En fait dans le vrai code j'ai l'adresse du site externe à la place du #, d'ou le target blank. Dans le div ,il y a seulement, la description, une image, un avis ....

Merci pour la suggestion du window.onload. C'est corrigé en ce sens.

tonguide
WRInaute accro
WRInaute accro
 
Messages: 1242
Inscription: Ven Nov 28, 2003 18:55

Message le Jeu Mar 27, 2008 14:49

seabird a écrit:Dans le div ,il y a seulement, la description, une image, un avis .... .

Raison de plus pour ne pas faire 3 tableaux pour juste ça :)

seabird
WRInaute impliqué
WRInaute impliqué
 
Messages: 252
Inscription: Lun Déc 01, 2003 17:57

Message le Jeu Mar 27, 2008 14:51

tonguide a écrit:
seabird a écrit:Dans le div ,il y a seulement, la description, une image, un avis .... .

Raison de plus pour ne pas faire 3 tableaux pour juste ça :)


exact :D je vais corriger

seabird
WRInaute impliqué
WRInaute impliqué
 
Messages: 252
Inscription: Lun Déc 01, 2003 17:57

Message le Jeu Mar 27, 2008 15:50

Je voudrais éventuellement rajouter une petite option :wink: .
Car ici à part au démarrage . Il y a toujours au moins une div de visible.
Je voudrais en fait masquer eventuellement la div visible, en cliquant par exemple sur un lien fermer situé dans le div et donc que toutes les div soient à nouveau invisibles.
Vous avez une idée de comment procéder ?

tonguide
WRInaute accro
WRInaute accro
 
Messages: 1242
Inscription: Ven Nov 28, 2003 18:55

Message le Jeu Mar 27, 2008 15:54

Tout simplement un lien
<a href="javascript:void(0)" onclick="cacher()">Fermer</div>

C'est à dire rappeler la fonction de démarre mais via un onclick plutôt qu'à partir d'onload.

seabird
WRInaute impliqué
WRInaute impliqué
 
Messages: 252
Inscription: Lun Déc 01, 2003 17:57

Message le Jeu Mar 27, 2008 16:00

a autand pour moi , il suffit que je rajoute

Code: Tout sélectionner
<a href="#" onclick="javascript:cacher();" >fermer</a>
dans chaque div :D

seabird
WRInaute impliqué
WRInaute impliqué
 
Messages: 252
Inscription: Lun Déc 01, 2003 17:57

Message le Jeu Mar 27, 2008 16:01

tonguide a écrit:Tout simplement un lien
<a href="javascript:void(0)" onclick="cacher()">Fermer</div>

C'est à dire rappeler la fonction de démarre mais via un onclick plutôt qu'à partir d'onload.


A on a répondu en meme temps :wink:

Conséquences de l'emploi de <div display:none >...

Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités