Problème "Padding" HTML-CSS

Résolu
Bonjour tout le monde,

En vue d'un projet scolaire, je suis en train de préparer un site. Jusque là, tout va bien. Sauf que j'ai un problème avec les liens que j'ai mis sur les image. Je voudrais que seulement le clique dans la zone orange fait la redirection vers une autre page sauf que les zones rouges (Où j'ai mis "padding-left" et "padding-buttom") servent aussi à la redirection. Je voudrais, si possible, que la redirection soit exclusivement réservé à la zone orange tout en conservant les paddings.

Merci d'avance de vos réponses.



Configuration: Windows 10/ Chrome 80.0.3987.122

5 réponses

  1. Problème résolu !

    "Sinon une autre solution serait de mettre des éléments invisibles" -Haround

    Solution : J'ai fais une image .png 1px*1px que j'ai redimensionné avec le css :
    #espace{
        height: 300px;
        width: 75px;
    }


    Merci de vos réponses ^^
    1. beurk, surtout à éviter votre solution(qui n'en est pas une).
      Là vous faites charger une image qui ne sert à rien et en plus la rendez inaccessible: tout ce qui ne faut pas faire et qui nuira aux performances de la page sans rien apporter.
  2. Modérateur
    Bonjour,

    Tu peux aussi déplacer ton id "g" ailleurs.
    Dans la div corps ou en ajouter une autre
    par exemple
    <div class="corps">
            <br /><br /><br />
           <div id="g">
            <a href="/redirect/1.html">
                 <img  src="img/1.png" onmouseover="this.src='img/affAnime/2.png';"
                    onmouseout="this.src='img/affAnime/1.png'"/>
            </a> 
          </div>
        </div>
    


    je te conseille également d'éviter de mettre du code JS directement dans les attributs..
    Utilises plutôt des fonctions.
    par exemple
     <div class="corps">
            <br /><br /><br />
            <div id="g">
       <a href="/redirect/1.html">
        <img  src="img/1.png" 
           onmouseover="changeImg(this,'2.png');"
           onmouseout="changeImg(this,'1.png');"/>
       </a> 
      </div>
        </div>
    
       <script type="text/javascript">
     function changeImg(elm,imgName){
      elm.src='img/affAnime/'+ imgName;
     }
       </script>
    


    1. Merci de votre réponse, je teste dans les plus brefs délais et je vous dis ça a fonctionné.
      1. Bonsoir,
        le padding c'est la marge interne de l'élément, ici l'image.
        Le clic passe par un lien donc concerne tout ce qui est contenu dans le lien: ici une image et ses marges.
        Pour délimiter une zone je pense le plus simple est de passer par les area map comme ceci:
        (c'est assez simple avec un rectangle en plus)

        https://www.w3schools.com/TAGS/tag_area.asp

        Sinon une autre solution serait de mettre des éléments invisibles(comme un div) en superposition(donc hors du lien avec la balise "a" ), 4 un par 'bord' où on doit empêcher le clic mais ça me paraît nettement plus compliqué pour le même résultat.
        1. éventuellement il y a ça aussi si on veut utiliser le CSS, ça consiste juste à masquer une partie de l'image donc je ne sais pas si ça peut correspondre ou alors il faut aussi adapter les marges.

          https://www.w3schools.com/cssref/pr_pos_clip.asp
          Bien sûr en utilisant clip il faut rajouter le lien comme c'est fait dans le code que vous nous montrez.
      2. Modérateur
        Bonjour

        Sans voir ton code il sera impossible de t'aider
        1. Pour le html :
              <br /><br />
              <div class="corps">
                  <br /><br /><br />
                  <a href="/redirect/1.html"><img id="g" src="img/1.png" onmouseover="this.src='img/affAnime/2.png';" onmouseout="this.src='img/affAnime/1.png'"/></a> 
              </div>


          Pour le CSS :
          #g{
              padding-left: 75px;
              padding-bottom: 60px;
          }