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] <a href> - Block-level inside inline


Sujet :

HTML

  1. #1
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut [W3C] <a href> - Block-level inside inline
    Bonjour.

    Je suis vraiment embêté avec ce problème : J'ai besoin d'intégrer un hyperlien à un bloc (div & table).
    Le validateur W3C me signale qu'un hyperlien est de type "INLINE" et ne peut contenir un élément de type "BLOCK".
    J'ai pensé à remplacer l'hyperlien par une balise <form>, mais peut-être avez-vous mieux à me proposer...
    surtout que je veux éviter d'utiliser Javascript et que je ne pourrais pas faire autrement avec un formulaire pour faire son submit sur le onclick du bloc.
    Bref, je dois absolument éviter d'utiliser Javascript pour cette fonctionnalité, c'est important dans ce projet.

    Je croise les doigts que vous pourrez m'aider.

    Merci d'avance.

  2. #2
    Membre Expert Avatar de Erwan31
    Profil pro
    Inscrit en
    Février 2008
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 2 177
    Par défaut
    Bonjour SubO,
    pourrais tu nous dire ce que tu souhaites faire exactement ou surtout pourquoi
    tu veux insérer un div dans un lien?

  3. #3
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <a href="#" title="" target="_self">
      <div style="border:2px solid black;padding:10px;">ok</div>
    </a>
    J'ai besoin d'un hyperlien pour obtenir les actions CSS hover et active et que ces actions se produisent sur la totalité du div.
    J'ai aussi besoin de la même chose avec une table à la place du div...

    Merci.

  4. #4
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    Tu peux faire l'inverse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <div>
      <a href="#" title="" target="_self">ok</a>
    </div>
    En mettant ton lien en display:block et en lui donnant les dimensions 100% en hauteur et en largeur.

  5. #5
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    ok, je vais essayer comme ça. Je vous tiens au courant.


  6. #6
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Et pour la table ?
    Il faut que je mette le lien à chaque cellule ?

    [Edit] Question bête, je suppose que oui...

  7. #7
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Il semblerait qu'il soit possible d'affecter un hover et active sur un div, mais ne fonctionnerait pas avec IE, dommage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #mydiv { background-color: blue; }
    #mydiv:hover { background-color: red; }

  8. #8
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    	   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">	
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr"> 
     
    <head>
      <title>New Document</title>
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/> 
      <style type="text/css">
      a { display:block; width:100%; height:100%; }
      #mydiv { background-color:blue; border:2px solid black; padding:10px; }
      #mydiv a:hover { background-color:red; }
      </style>
    </head>
     
    <body>
      <div id="mydiv">
        <a href="#" title="">
        ok
        </a>
      </div>
    </body>
    </html>
    Le souci est que le hover se produit sur le lien et non plus sur le conteneur...

    Il aurait fallu que ceci fonctionne :
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    a:hover #mydiv { background-color:red; }

  9. #9
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    Ne mets pas le padding sur le div mais sur le lien.

  10. #10
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Citation Envoyé par Bisûnûrs Voir le message
    Ne mets pas le padding sur le div mais sur le lien.
    Je ne suis pas sûr d'avoir bien le choix puisqu'en réalité, je dois faire disparaître le conteneur lorsqu'on clique dessus sans utiliser Javascript.
    Avec la solution de mettre l'hyperlien dans le conteneur, je ne ferais disparaître que l'hyperlien et non le conteneur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      a { display:block; width:100%; height:100%; }
      #mydiv { display:block; border:2px solid black; padding:10px; }
      #mydiv a:active { display:none; }
    J'aurai pu utiliser l'hyperlien comme conteneur mais celui contient d'autres divs...
    Et remplacer tous mes conteneurs, mais on ne peut pas imbriquer des hyperliens, j'en sors plus.
    Mon problème est simple finalement: Comment masquer un conteneur de type block lorsqu'on clique dessus et sans utiliser JS.


  11. #11
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Ce que je demande est impossible je crois.

    • Alors je vais devoir détecter si Javascript est activé pour réaliser la fonction avec onclick.
    • Si Javascript est désactivé, avec les directives d'IE, laisser mon code tel quel pour IE.
    • Pour les autres navigateurs, utiliser directement l'action CSS active sur le div.

    Simplement, avec IE et JS désactivé, mon code n'est pas valide W3C mais fonctionne malgré tout.

    Qu'en pensez-vous ?

  12. #12
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    Tu peux dans ce cas-là tout simplement utiliser Javascript dans tous les cas, non ?

  13. #13
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Citation Envoyé par Bisûnûrs Voir le message
    Tu peux dans ce cas-là tout simplement utiliser Javascript dans tous les cas, non ?
    En fait, il faut que ça fonctionne même si Javascript est désactivé.
    Par contre, je l'utilise si il est activé.

  14. #14
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Bon, j'ai résolu le problème en détectant si javascript est activé et en ajustant le code en fonction. Ainsi, mon code est valide W3C seulement si Javascript est activé, mais reste fonctionnel dans tous les cas.


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

Discussions similaires

  1. CSS2 : les recommandations du W3C en français
    Par Community Management dans le forum Mise en page CSS
    Réponses: 9
    Dernier message: 26/11/2023, 14h59
  2. [CSS 2] <a href, div et validation w3c
    Par oceane751 dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 18/02/2010, 17h45
  3. [W3C] Problème : cadre autour d'une image en a href
    Par Warz dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 20/07/2005, 10h32
  4. [W3C] chemin des href
    Par Anonymous dans le forum Balisage (X)HTML et validation W3C
    Réponses: 9
    Dernier message: 10/02/2005, 01h00
  5. [XMLRAD] XMLRAD V7 RC et base href
    Par Sylvain Leray dans le forum XMLRAD
    Réponses: 2
    Dernier message: 06/01/2003, 15h11

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