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 :

Comment mettre un lien sur un DIV ?


Sujet :

HTML

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 72
    Points : 39
    Points
    39
    Par défaut Comment mettre un lien sur un DIV ?
    Bonjour,

    Je voudrais affecter un lien à chaque pavé de cette page : http://www.grenault.net/mob_index.htm.

    Or le W3C n'autorise pas cette fonctionnalité <a href="..."><div class="...">

    Si vous avez une solution, je suis preneur !

    Merci.

    Cordialement.

  2. #2
    Membre expert
    Avatar de Muchos
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    1 700
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 700
    Points : 3 849
    Points
    3 849
    Billets dans le blog
    6
    Par défaut
    Pour répondre à votre question :
    1. Vous pourriez passer à HTML5, qui accepte les éléments bloc entre les balises A.
    2. Sinon, vous pouvez faire comme l'exemple suivant :
      Code html : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      <div class="bloc">
        <a class="bloc_lien" href="#"></a>
      </div>
      Code css : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      .bloc {
        border: medium solid black;
        height: 4em;
        width: 4em;
      }
      .bloc_lien {
        display: block;
        background: blue;
        height: 100%;
        /* width: auto (par défaut) */
      }


    Pour répondre à votre problème :
    Selon moi, vous pourriez éviter le problème en changeant de syntaxe. Vos DIV sont inutiles : une liste suffirait. Ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <ul class="menu">
      <li>
        <a href="#"><span>Photos</span>
        <br />Présentation de quelques photos</a>
      </li>
    </ul>
    Code css : 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
    .menu {
      padding: 0;
    }
    .menu a {
      display: block;
      margin: 1em auto;
      border-radius: 1ex;
      width: 50%;
      font-size: 2em;
      text-align: center;
      text-decoration: none;
      color: #000;
      background: #3366FF;
    }
    .menu span {
      color: #FFF;
    }

    En outre, vous pourriez mettre une seule ligne de texte plutôt que de vous répéter (mais peut-être est-ce pour ajouter du mot-clé).

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Webmaster
    Inscrit en
    Avril 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 31
    Points : 33
    Points
    33
    Par défaut
    Bonjour

    Ou remplacer le bloc "div" par un "span" (dans votre code actuel je ne sais pas quel élément div pose souci et l'effet attendu)

    Même remarque que Muchos, sémantiquement vous devriez plutôt utiliser les listes. Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <div class="bloc-liste">	
       <h3 class"montitre"><a href="photos/mob_index.htm" class="pages">Photos</a></h3>
       <ul class"maliste">
          <li><a href="photos/mob_index.htm" class="texte">Présentation de quelques photos</a></li>
          <li><a href="photos/mob_index.htm" class="texte">lien1</a></li>
          <li><a href="photos/mob_index.htm" class="texte">lien2</a></li>
       </ul>
    </div>

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Ensuite, on peut aussi considérer que la validation est une chose, que le fonctionnel en est une autre.
    Si le code présenté n'est pas valide, ce n'est pas bien grave au final dans la mesure où il est fonctionnel.
    D'autant que sémantiquement, une div dans un lien n'est pas nécessairement une aberration, pour preuve, l'évolution faite par le W3C concernant ce point dans la norme HTML5.
    Bref, le meilleur conseil reste le premier donné par Muchos : mettre un doctype HTML5 et aucune autre modification n'est nécessaire.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 72
    Points : 39
    Points
    39
    Par défaut Problème résolu
    Bonjour,

    Je vous remercie tous pour votre aide.

    Le problème est résolu car, en fait, un lien sur un Div est accepté en HTML5, une excellente initiative !

    J'ai donc converti la page en HTML5 et le code se réduit à ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <a href="mob_tech.htm">
    <div class="bloc-liste">
    Cours Photo
    <div class="texte">Initiation rapide et simple à la photo
    </div>
    </div>
    </a>
    Sur le Galaxy S4, cela me semble acceptable mais je ne sais pas sur un I-phone ?

    Bonne journée.

    --
    http://mobile.grenault.net

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

Discussions similaires

  1. [VirtueMart] Joomla : comment mettre des liens sur ma page d'accueil
    Par SGJ dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 26/08/2009, 23h36
  2. Comment mettre plusieurs liens Hypertexte sur une image
    Par Gyzou dans le forum Powerpoint
    Réponses: 3
    Dernier message: 20/03/2008, 03h14
  3. [Info]Comment mettre une servlet sur le web?
    Par fred9510 dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 15/08/2004, 16h40
  4. Comment mettre un label sur une image
    Par dug dans le forum MFC
    Réponses: 3
    Dernier message: 07/04/2004, 10h40
  5. Réponses: 2
    Dernier message: 19/08/2003, 15h45

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