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 :

Cliquer sur image+texte


Sujet :

HTML

  1. #1
    Membre averti

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 351
    Points : 446
    Points
    446
    Par défaut Cliquer sur image+texte
    J'ai besoin d'afficher du texte sur une image de fond et j'aimerais que si l'on clique n'importe où sur l'image ou le texte, alors on se retrouve sur une autre page.

    Je dessine mon image sur un div et le texte sur un autre div par dessus:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <div style="position:absolute;
                left:50px
                top: 50px;
                width: 100px;
                height: 100px;">
                <img src="image.gif" width=100 height=100>
    </div>
    <div style="position:absolute;white-space:normal;overflow:hidden;
                left: 50px;
                top: 50px;
                width: 100px;
                height: 100px;">
           Mon texte
    </div>
    Mais je ne sais pas comment faire pour que si l'utilisateur clique sur le texte ou l'image, alors on suive un lien. Si je mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="target.html">Mon Texte</a>
    Alors ça marche pour le texte, mais pas pour l'image

    J'ai essayé de créer un troisième layer vide par dessus les deux autres et lui donner une handler sur "onclick". Ca marche génial sur Mozilla mais rien sur IE:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <div style="position:absolute;'+
              left:50px;
              top:50px;
              width: 100px;
              height:100px;
              z-index: 999998;"
              onclick="javascript:changePage('target.html');">          
    </div>
    Quelqu'un aurait-il une idée??

    D'avance merci

  2. #2
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2005
    Messages
    273
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2005
    Messages : 273
    Points : 322
    Points
    322
    Par défaut
    la première solution tu oublie lol (enfin j'ai pas lu en fait tellement ça à l'air compliqué pour rien)
    en gros ce que tu veux c'est un bouton avec image et texte, qui fait lien...

    donc
    html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="cible.html" class="bouton_lien">texte du bouton</a>
    css
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    .bouton_lien{
    display:block;
    width: ...; // largeur image
    height: ...; // hauteur image
    background:url('image.gif') no-repeat; // où ce que t'as besoin pour l'image...
    }
    pis c'est tout...
    à noter que désormais le lien va se comporter en block, donc va créer un retour à la ligne etc... (et donc pas besoin de div autour...)

  3. #3
    Membre averti

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 351
    Points : 446
    Points
    446
    Par défaut
    Mon problème, c'est que j'aimerais que l'image réagisse aussi au clic...

    En plus, il y a des problèmes d'impression avec les images de fond (il faut activer les options ad hoc pour que l'image apparaisse sur l'imprimante) alors qu'avec deux div superposés, l'image s'imprime dans tous les cas...

    Donc cette solution n'est pas totalement satisfaisante

    Edit: J'ai dit une bêtise: toute l'image réagit correctement au clic

  4. #4
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2005
    Messages
    273
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2005
    Messages : 273
    Points : 322
    Points
    322
    Par défaut
    en général tu fai un css screen et un print...

  5. #5
    Membre averti

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 351
    Points : 446
    Points
    446
    Par défaut
    Je sais comment associer un css au print, mais je ne sais pas comment forcer une image de fond à être imprimée depuis le css? Pourrais-tu me donner un exempe??

    Merci

  6. #6
    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
    si tu veu un lien sur le texte et un sur l'image pourquoi ne pas mettre une balise a sur le texte et une sur l'image tout simplement?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <a href="<a href="http://www.developpez.com"" target="_blank">http://www.developpez.com"</a> style="position:absolute;white-space:normal;overflow:hidden; left: 50px; top: 50px;"><img src="image.gif" width="100" height="100"></a>
    <div style="position:absolute;white-space:normal;overflow:hidden; left: 50px; top: 50px;"><a href="<a href="http://www.developpez.com">mon" target="_blank">http://www.developpez.com">mon</a> Text</a></div>
    DON'T PANIC

  7. #7
    Membre chevronné
    Avatar de sovo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    1 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

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

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 389
    Points : 1 788
    Points
    1 788
    Par défaut
    si j'ai bien compris tu voudrais que ceci :
    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
     
    <div style="text-align: left;"><div style="position:absolute;
                left:50px
                top: 50px;
                width: 100px;
                height: 100px;">
                <img src="image.gif" width=100 height=100>
    </div>
    <div style="position:absolute;white-space:normal;overflow:hidden;
                left: 50px;
                top: 50px;
                width: 100px;
                height: 100px;">
           Mon texte
    </div></div>
    reagisse au lien. Alors pourquoi ne pas faire simplement
    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
     
    <a href="taget.html">
    <div style="text-align: left;"><div style="position:absolute;
                left:50px
                top: 50px;
                width: 100px;
                height: 100px;">
                <img src="image.gif" width=100 height=100>
    </div>
    <div style="position:absolute;white-space:normal;overflow:hidden;
                left: 50px;
                top: 50px;
                width: 100px;
                height: 100px;">
           Mon texte
    </div></div></a>
    je croit que ca devrais aller ??
    "Toute question a une reponse. Et chaque reponse est une nouvelle question." Albert EINSTEIN

    En cas de Question resolu, n'oubliez pas

  8. #8
    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
    on pourrai meme enlever un div

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <a href="<a href="http://www.developpez.com"" target="_blank">http://www.developpez.com"</a> style="position:absolute;
    display:block;
    left: 50px;
    top: 50px;
    width: 100px;
    height: 100px;">
    <img src="image.gif" width=100 height=100>
    <div style="position:absolute; top:0; left:0; ">Mon texte</div>
    </a>
    bien vu sovo. Enfait c'est surtout que j'ai ete un peu vexé de avoir pense a ca :/

    attention quand meme au ; manquant apres le left.

    DON'T PANIC

  9. #9
    Membre chevronné
    Avatar de sovo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    1 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

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

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 389
    Points : 1 788
    Points
    1 788
    Par défaut
    Citation Envoyé par masu
    attention quand meme au ; manquant apres le left.

    comme tu l'auras tres certainement remarque masu, pour ne pas m'ecarter de son code, je n'ai fait qu'un copier coller. Donc ...
    "Toute question a une reponse. Et chaque reponse est une nouvelle question." Albert EINSTEIN

    En cas de Question resolu, n'oubliez pas

  10. #10
    Membre averti

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 351
    Points : 446
    Points
    446
    Par défaut
    De nouveau, ça marche bien sur Mozilla, mais IE ne réagit pas si on passe sur l'image en dehors du texte...

    Par contre, je crois que j'ai résolu le problème avec ce code:
    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
     
    <div style="position:absolute;
                    left: 50px;
                    top: 50px;
                    width: 100px;
                    height: 100px;
                    z-index: 20005;">
                <a href="link.html"
                     style="width: 100px;
                            height: 100px;
                            display: block;
                            text-align: center;
                            border: 0px;
                            background: url('image.gif') no-repeat;">
                 Mon Texte</a>
    </div>
    La subtilité est que l'image DOIT se trouver dans le lien. Si on superpose un div avec l'image sous le <a...> alors IE ignore la zone en dehors du texte!

    Pour info, pour l'impression de l'image sans devoir activer l'option "imprimer les images et couleurs de fond" d'IE, j'ai fait un gros sandwitch:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <div ... top: 50px; left: 50px; ...>
      <img src="image.gif">
    </div>
    <div ... top: 50px; left: 50px; ...>
      <a style=".. background: url('image.gif') ..." href="link.html">Mon texte</a>
    </div>
    Le premier div affiche l'image pour qu'elle soit imprimée, le second affiche de nouveau l'image en background du texte du lien pour qu'elle réagisse. Et ça marche aussi bien dans Mozilla que IE!

    EDIT: Désolé masu, mais je n'avais pas vu ton post: ça marche très bien aussi :-) La différence dans le résultat est qu'avec ma méthode on ne peut pas copier le texte alors qu'on peut le faire avec la tienne...

    Encore merci pour vos précieux conseils!

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

Discussions similaires

  1. Cliquer sur un texte sélectionné pour récupérer son contenu
    Par lysandre dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 26/11/2010, 17h34
  2. Lueur externe/ombre sur image texte
    Par alalalola dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 06/09/2010, 13h04
  3. fonctions d'image : texte sur image
    Par guy2004 dans le forum Langage
    Réponses: 2
    Dernier message: 10/08/2006, 09h56
  4. Réponses: 9
    Dernier message: 03/08/2006, 13h59
  5. Réponses: 5
    Dernier message: 29/07/2006, 00h35

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