IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

HTML Discussion :

[W3C] problème avec "id already defined"


Sujet :

HTML

  1. #1
    Membre averti Avatar de mussara
    Inscrit en
    Novembre 2004
    Messages
    442
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2004
    Messages : 442
    Points : 348
    Points
    348
    Par défaut [W3C] problème avec "id already defined"
    bonsoir à tous

    j'ai un souci avec les id...
    le code ci-dessous n'est pas valide w3c car je définis mal l'id.... mais au niveau rendu ça me donne exactement ce que je souhaite (au niveau affichage web)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <body id="portrait" class="fond" onload="setHover()">
       <div class="head1">
          <ul id='menu'>
             <li><img src='images/divers/frise.gif' alt='logo'/><a href='index.php'>Accueil</a></li>
             <li><img src='images/divers/friseviolet.gif' alt='logo'/><a href='sculpteur.php?cat=portrait' id='portrait'>Portrait</a></li>
          </ul>
       </div>
       <div class='centretitre'></div>
       <div class='centresecondtextecentre'></div>		
       <div class="pied violet"></div>
    </body>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    body#portrait a#portrait {background-color:#000000;color: #FFFFFF;border:1px solid #000000;}
    message d'erreur w3c:
    1. Error Line 18 column 99: ID "portrait" already defined.

    ...ref='sculpteur.php?cat=portrait' id='portrait'>Portrait</a>

    An "id" is a unique identifier. Each time this attribute is used in a document it must have a different value. If you are using this attribute as a hook for style sheets it may be more appropriate to use classes (which group elements) than id (which are used to identify exactly one element).


    2. Info Line 14 column 10: ID "portrait" first defined here.

    <body id="portrait" class="fond" onload="setHover()">
    dans le code que j'ai donné j'ai mis le code html résultant car c'est une procédure sous php qui aiguille en fonction de tous les paramètres

    je comprend qu'il tilte parce que j'initialise 2 fois cette valeur à id, mais je ne vois pas trop comment m'en sortir car si dans mon lien je ne lui spécifies pas que l'id est à telle valeur, alors il n'en tient pas compte au niveau du rendu web...

    je dois louper quelque chose au niveau de l'activation de cet id au niveau de la balise Body mais je ne vois pas...

    si quelqu'un peut m'aider...

    merci d'avance

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    l'attribut id doit toujours avoir une valeur unique sur tout le document, ton problème vient de là...
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  3. #3
    Membre averti Avatar de mussara
    Inscrit en
    Novembre 2004
    Messages
    442
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2004
    Messages : 442
    Points : 348
    Points
    348
    Par défaut
    oui oui je suis d'accord avec toi et je le comprends bien... mais quelle astuce dois-je utiliser pour que id soit bien positionné...

    car si j'enlève de mon lien html cette valeur (id=portrait) alors la page web résultante ne tient pas compte de la valeur id=portrait alors que je la positionne dans la balise body....

  4. #4
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    déjà, en temps normal, tu n'es censé avoir qu'un seul body donc rajouter une id dessus ça ne sert à rien... ne mets l'id que sur ton lien ^^
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  5. #5
    Membre averti Avatar de mussara
    Inscrit en
    Novembre 2004
    Messages
    442
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2004
    Messages : 442
    Points : 348
    Points
    348
    Par défaut
    j'ai essayé pas mal de variations de code... en vain...
    la seule chose de positive que j'ai pu obtenir c'est en utilisant un span sur le texte du lien (donc du menu), mais il ne me mettait en noir (ce que je voulais) que la partie textuelle (et pas l'espace alloué par ma balise li, qui est + large)

    les pages sont visibles ici et la css qui tourne derrière est

  6. #6
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Je répèterai la même question que Swoog : Pourquoi utiliser un id pour un body ?
    En plus tu attribues plusieurs id au même body (vu qu'il est unique).
    Si tu souhaites modifier un <a> attribues lui une classe et c'est tout.

    Mais pas toutes une série d'id surtout comme tu l'as définit

  7. #7
    Membre averti Avatar de mussara
    Inscrit en
    Novembre 2004
    Messages
    442
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2004
    Messages : 442
    Points : 348
    Points
    348
    Par défaut
    encore une fois je suis tout à fait d'accord...
    mais si je n'attribues pas cet id au body, le résultat que j'obtiens n'est pas le bon... mais en contrepartie je traine cette erreur de double id ....

    et je ne vois pas comment faire pour attribuer une classe au <a> qui dépend de mon menu, car c'est seulement pour le menu sélectionné que je souhaite que l'apparence soit différente de celles des autres...

    et quand je modifie les valeurs de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ul#menu li a{
      display:block;
      padding:2px 6px;
      border:0px solid #CCCCCC;
      color:#000000; 
      text-decoration:none
    }
    il me modifie (et c'est logique) l'apparence de tous mes liens de tous mes menus, alors que je souhaite qu'il n'y ait que le menu sélectionné qui apparaisse différement...

  8. #8
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Citation Envoyé par mussara
    encore une fois je suis tout à fait d'accord...
    mais si je n'attribues pas cet id au body, le résultat que j'obtiens n'est pas le bon... mais en contrepartie je traine cette erreur de double id ....
    Tout simplement parce que tu as mis ton css avec plusieurs body#iddifferent.

    Si tu retirais le le body et que tu transformais ton css sur id en classe(dans le cas de plusieurs <a>) c'est sur que ca marcherait.

    Et pourquoi mettre body devant alors que c'est sur que le <a> sera dans le body, il peut pas être autre part

    Il existe pour les <a> des propiétés telles que active, hover et etc...Tu devrais peut etre regardé de ce coté...Il y a aussi plein d'infos sur ceci dans la faq HTML/CSS

  9. #9
    Membre confirmé Avatar de masu
    Inscrit en
    Février 2004
    Messages
    428
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 428
    Points : 484
    Points
    484
    Par défaut
    alors j'ai deja utilisé ce genre d'astuce pour que le lien selectionné dans le menu soit different des autres.

    il te faut un body id different a chaque page et un id different pour ton lien.

    Par exemple 2 page accueil et page 1

    accueil
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <body id="page_accueil">
    <ul menu>
    <li><a href="accueil.htm" id="accueil">accueil</a></li>
    <li><a href="page1.htm" id="page1">page1</a></li>
    </ul>
    [...]
    page1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <body id="page_page1">
    <ul menu>
    <li><a href="accueil.htm" id="accueil">accueil</a></li>
    <li><a href="page1.htm" id="page1">page1</a></li>
    </ul>
    [...]
    css
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    body#page_accueil a#accueil,
    body#page_page1 a#page1 
     {
    	aspact de ton lien
     }
    cette solution est bien car elle ne demande pas de language php pour donner une apparence différente au lien selectionné mais quand on a beaucoup de page le selecteur sevien un peu long.

    j'ai utilisé ca sur ce site http://blabla.13fr.com/html/
    DON'T PANIC

  10. #10
    Membre averti Avatar de mussara
    Inscrit en
    Novembre 2004
    Messages
    442
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2004
    Messages : 442
    Points : 348
    Points
    348
    Par défaut
    merci beaucoup Masu
    tes explications sont très claires et le résultat est conforme à ce que je souhaitais faire, tout en restant valide w3c...



+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [W3C] Validation W3C : problème avec le javascript
    Par jason69 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 07/08/2007, 10h38
  2. [W3C] Probléme avec w3C
    Par Gaël81 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 10
    Dernier message: 28/06/2007, 11h11
  3. problème avec const char * et #define macro
    Par CodeurNé dans le forum C
    Réponses: 5
    Dernier message: 20/09/2006, 21h25
  4. [W3C] Problème avec la balise div et le style "display:none&a
    Par Golork dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 14/11/2005, 20h30
  5. Formulaires : problème avec les slashes et les quotes
    Par GarGamel55 dans le forum Langage
    Réponses: 1
    Dernier message: 12/10/2005, 15h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo