div et ancre

jimmyboy
Invité n'ayant pas de compte PHPfrance

19 août 2008, 15:50

bonjour à tous(tes),

pourriez m'aider dans ma requête : j'ai 2 div placées en css l'une à coté de l'autre. Dans la 1ere j'ai une liste de lien que j'aimerai faire pointer chacun vers des ancres à l'interieur d'un texte contenu dans la 2eme div... je vois pas trop comment faire..
Merci à tous.

Code : Tout sélectionner

<div id="txt_auteur2"><a href="index2.php?options=auteur&lang=fr#test1" title="Magazines">Magazines</a><br /><a href="index2.php?options=auteur&lang=fr#test2" title="Documentaires">Documentaires</a> </div> <div id="txt_auteur3"><a name="#test1">Les sauveurs de vies : pompiers du monde " en 2002</a><br /><br /><a name="#test2">Autre texte...</a> </div>

Mammouth du PHP | 1353 Messages

19 août 2008, 16:02

Je ne suis pas sur de comprendre la question...

Les ancres sont indépendantes des div...

Pourquoi pas tout simplement :

Code : Tout sélectionner

<div id="txt_auteur2"><a href="#test1" title="Magazines">Magazines</a><br /> <a href="#test2" title="Documentaires">Documentaires</a> </div> <div id="txt_auteur3"><a name="#test1">Les sauveurs de vies : pompiers du monde " en 2002</a><br /><br /><a name="#test2">Autre texte...</a> </div>
Bon bien sur faut ajouter des <br/> pour voir que l'ancre fonctionne, mais elle fonctionne...
Tell me and I forget. Teach me and I remember. Involve me and I learn.

jimmyboy
Invité n'ayant pas de compte PHPfrance

19 août 2008, 16:29

salut,

effectivement les ancres dans la div 1ere pointent vers des <a name="" d'une autre div.. et elles sont bien indépendantes.. donc aucun effet..

Mammouth du PHP | 19672 Messages

19 août 2008, 16:41

Au lieu d'utiliser l'attribut name d'une balise <a>, sers-toi de l'identifiant du contenant. Par exemple, sur la base de ton exemple de code, au lieu de faire :

Code : Tout sélectionner

<a href="#test1">...
Qui pointe sur le

Code : Tout sélectionner

<a name="#test1">...
utilise plutôt :

Code : Tout sélectionner

<a href="#txt_auteur3">...
Ça va pointer sur le <div> qui a cette valeur en attribut id (sans le #).

Et du coup, tu n'as plus besoin d'ajouter le

Code : Tout sélectionner

<a name="...
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

19 août 2008, 17:10

oui, merci mais je crois qu'on s'est pas compris :

quand je clique sur un lien de la div 1 je souhaite pointer vers une ancre placée dans mon texte qui est contenu dans la div 2..
donc si je fais

<a href="#txt_auteur3">... cela va bien pointer vers la div.. mais pas sur l'ancre.. ou plutôt l'endroit exacte du texte que j'aimerai afficher :roll:

Invité
Invité n'ayant pas de compte PHPfrance

19 août 2008, 18:24

ok, autant pour moi : suffisait de mettre un <a href="#test2"> et un <p id="test2">bla</p> de l'autre coté et zou ca fonctionne c tout simple, le <a name="" est un peu trop vieux je crois..

Merci pour votre aide.

@+ :D

Mammouth du PHP | 2937 Messages

19 août 2008, 18:27

oui, merci mais je crois qu'on s'est pas compris :

quand je clique sur un lien de la div 1 je souhaite pointer vers une ancre placée dans mon texte qui est contenu dans la div 2..
donc si je fais

<a href="#txt_auteur3">... cela va bien pointer vers la div.. mais pas sur l'ancre.. ou plutôt l'endroit exacte du texte que j'aimerai afficher :roll:
Dans ce cas, déplace ton attribut id vers l'endroit exact où tu veux que se trouve l'ancre.

À noter, soit dit en passant, que l'attribut name, en dehors des champs de contrôle d'un formulaire (élément FORM exclu) et des éléments META, MAP et PARAM, n'est pas autorisé en mode strict (que ce soit en HTML 4 ou en XHTML), puisque l'attribut id existe pour identifier un élément.