Génération Seventies, Mémoire Vivante

  • Accueil
  • Seventies
    • Seventies > accueil
    • Seventies > suite 01
    • Seventies > Photothèque
    • Seventies > Salles vidéos
  • Histoire & Société
    • Histoire & Société > accueil
    • Histoire & Société > suite 01
    • Photothèque Histoire & Société
    • Histoire & Société > Salles vidéos
  • Education Populaire
    • Education Populaire > accueil
    • Education Populaire > suite 01
    • Education Populaire > Photothèque
    • Education Populaire > Salles vidéos
  • Economie Solidaire
    • Economie Solidaire > accueil
    • Economie Solidaire > suite 01
    • Economie Solidaire > Photothèque
    • Economie Solidaire > Salle vidéos
  • Traditions Populaires
    • Traditions Populaires > accueil
    • Traditions Populaires > suite 01
    • Traditions Populaires > Photothèque
    • Traditions Populaires > Salles vidéos
  • Balades Régionales
    • Accueil
    • Région PACA
    • Page provisoire 07 pour différents tests
    • Photothèque
    • Salles vidéos
  • Passions
    • Passions > accueil
    • Passions > suite 01
    • Passions et Hobbys > Photothèque
    • Passions & Hobbys > Salle vidéos
    • Liens Tutos interne & externe
    • Liens Internet
      • Notes de version WebAcappella-Fusion
      • Forum WebAcappella-fusion
      • WebAcappella-Fusion
      • Edelweiss-Génération-Seventies

CSS pour débutant

Code source de la page
http://css.mammouthland.net/zoomer-une-image-avec-css.php

Zoomer une image avec les CSS - CSS Debutant

Aller aux menus

#CSS {débutant;}

  • Premiers pas
  • CSS3
  • Tutoriels
  • Livre
  • Boite à Outils

Vous êtes ici > CSS Débutant | Tutoriels CSS | Zoom d'image

Zoomer une image, à l'aide des CSS2, lors de son survol de la souris peut se faire très facilement. Il suffit de combiner le pseudo-élément :hover à la balise img (image).

Hélas, tant que MSIE6 existera, il faudra utiliser d'autres moyens pour le même résultat. En effet, il n'implémente :hover que pour les liens...

Ce tutoriel décrit deux méthodes pour zoomer une image 100% CSS, la première simplissime mais inopérante avec MSIE6, la seconde utilisant la technique des « portes coulissantes ».

Zoomer une image avec les CSS

Sommaire

  • Première technique
  • Seconde technique

Première technique

Fonctionne avec :

  • FireFox
  • MSIE 7 +
  • Mozilla / SeaMonkey
  • Opéra 7 +
  • Safari

Attributs utilisés :

  • img:hover

Code (x)html

L'image est déclarée dans le code html sans valeurs de tailles (ni width, ni height) :

                        <div class="zoom">
                         <p>
                          <img src="pensees_1.jpg" alt="pensées de Giverny" />
                         </p>
                        </div>
                        

Code CSS

Pour éviter tout saut, ou recouvrement, du texte sous-jacent lors du zoom, on peut déclarer cette image dans un cadre (ici appelé zoom) de hauteur égale à la photo zoomée (ici 400px). De même, ce cadre servira aussi à limiter cette propriété grossissante à cette seule image.

Les valeurs de tailles sont déclarées au sein de la feuille de style, tout d'abord dans son état initial (img), puis dans son état survolé (img:hover)
Ici, les tailles de l'image passeront de 200x267 pixels à 300x400 pixels

                        .zoom {
                        height:400px;
                        }
                        .zoom p {
                        text-align:center;
                        }
                        .zoom img {
                        width:200px;
                        height:267px;
                        }
                        .zoom img:hover {
                        width:300px;
                        height:400px;
                        }
                        

Zone de test

photo de pensée

Haut

Seconde technique

Fonctionne avec :

  • Tous les navigateurs graphiques

Attributs utilisés :

  • background
  • cursor
  • display
  • height
  • margin
  • width

Pour cet âne bâté d'Internet Explorer, il va falloir tricher en faisant croire que l'image est un lien, ce qui est sémantiquement très discutable...
Cette fois l'image ne sera plus déclarée dans la page html mais uniquement dans la feuille de style en fond d'écran (background).
De plus, il faudra avant tout travailler la photo ou figurera, l'une en dessous de l'autre, l'image initiale et l'image à apparaître lors du zoom.

Inconvénients de la méthode :

  1. L'image sera plus lourde, donc plus longue à charger.
  2. En cas d'impression, la photo n'apparaîtra pas si l'internaute a configuré la non-impression des fonds d'écran.

Code (x)html

                        <div class="zoom1">
                         <p>
                          <a href="#" title="pensées de Giverny"></a>
                         </p>
                        </div>
                        

Code CSS

L'image pensees_2.jpg a donc été créée avec un bon logiciel de traitement d'images (PUB : PhotoFiltre est agréablement performant, et gratuit en cas d'utilisation privée). Elle a une taille finale de 300x800 pixels pour un poids de 49 ko.

Toute l'astuce va être de faire apparaître les morceaux choisis de cette image : la partie haute par défaut (300x400 pixels) puis la partie basse (300x400 pixels aussi) au survol de la souris.
Cette dernière devant "remonter" de 400 pixels vers le haut, on indiquera pour la position de fond de page background-position:0px -400px (condensé dans le code dans la déclaration background) ; le 0 étant relatif à la position horizontale et le -400px à la position verticale.

Ne pas oublier surtout le très important display:block qui permet ici le "remplacement" de la première portion d'image par l'autre.

                        .zoom1 {
                         width: 300px;
                         height: 400px;
                         background: url(pensees_2.jpg) no-repeat;
                         margin: 0 auto; 
                        }
                        .zoom1 p, .zoom1 a {
                        height: 400px; 
                        display: block;
                        margin:0
                        }
                        .zoom1 a:hover {
                        background: url(pensees_2.jpg) no-repeat 0 -400px;
                        cursor:help;
                        }
                        
Astuces

margin:0 auto déclaré dans .zoom1 permet de centrer horizontalement l'image dans la page. Hélas, encore une fois, MSIE ne l'implémente pas...

cursor:help déclaré dans zoom1_1 a:hover permet de changer l'apparence du curseur lors du survol de l'image. D'autres valeurs, comme cursor, crosshair, default sont aussi disponibles.

Zone de test

Haut

Compléments d'informations

  • Cette technique d'images "glissantes" appliquée aux zooms est inspirée de l'article "Les Portes Coulissantes de CSS - Chapitre II".
  • D'autre part, elle peut être aussi appliquée à des pseudo découpes d'images comme le décrit très bien cet autre article : "Sprites CSS : Meurs, découpe d'images, meurs !", lui aussi traduit par l'équipe de pompage.net.

précédent suivant

Haut

Partager sur Tweeter

Partager sur Facebook Ajouter à Del.ici.ous S'abonner au flux RSS

Contact : pascale at mammouthland.net

Creative Commons License

En cas de reproduction (partielle ou totale) de cet article, prière de faire un lien vers la page originale : http://css.mammouthland.net/zoomer-une-image-avec-css.php

Premiers pas en CSS

CSS3

Tutoriels CSS

  • Boutons CSS
  • Plusieurs images de fond
  • Coins arrondis CSS
  • Zoom d'image en CSS
  • Vignettes (Thumbnails)
  • Tableaux à bordures fines
  • Menu horizontal CSS
  • Menu déroulant en CSS
  • Générer du contenu
  • Formulaires en CSS
  • Rasmol et object

Boite à Outils

Articles connexes

Suivre @CSSdebutant sur Twitter

Logo Alsacréations.fr

Logo de soutien au projet Opquast

Soutenir Framasoft

Jardinage

  • Accueil
  • Générateur de CSS
  • Paris-Web
  • Liste de discussion
  • Liens utiles
  • Plan du site

Plantation

Zoomer une image avec les CSS
Dernière m.a.j : 24-01-2018
© Mammouthland 1998-2022
À propos de CSS Débutant

Cultivateurs

  • Alsacréations
  • css 4 design
  • CSS3 Create
  • Developpez.com
  • OpenWeb
  • Pompage.net

Exemple de la première technique de mammouthland.net

Exemple de
https://openweb.eu.org/articles/zoom_image

pensées de Giverny

photo d'un papillon machaon butinant une fleur

Pour modifier le code, utiliser l'outil https://codepen.io/pen/?editors=1100

Exemple d'un code avec cet outil

pensées de Giverny

photo d'un papillon machaon butinant une fleur