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

Mise en page CSS Discussion :

Réduire une image sans la déformer


Sujet :

CSS

  1. #1
    Membre actif
    Inscrit en
    Juin 2005
    Messages
    578
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 578
    Points : 240
    Points
    240
    Par défaut Réduire une image sans la déformer
    Bonjour

    J'aimerai savoir comment réduire une image à l'affichage sur ma page html, sans que celle-ci ne soit déformée. Voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img class="imageflottanteProfil" alt="non disponible" src="<c:url value="/images/${ sessionScope.candidats.photo }"/>"   />
    Et dans le fichier css:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    .imageflottanteProfil
    {
    float: left;
    margin-right: 20px;
    width: 200px;
    height: 220px;
    }
    Merci

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 112
    Points
    44 112
    Par défaut
    Bonjour,
    • fixe simplement la largeur et la hauteur s'ajustera
    • fixe simplement la hauteur et la largeur s'ajustera

  3. #3
    Membre actif
    Inscrit en
    Juin 2005
    Messages
    578
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 578
    Points : 240
    Points
    240
    Par défaut
    Ok je vois. En fait lorsque je fixe la largeur,pour une image dont la hauteur vaut le double la largeur, la hauteur dépasse mon div. Donc il me faudrait rogner l'image je crois comme ce que font les utilisateurs de facebook lors de l'ajout d'une image de profil.

    Je vais donc chercher comment insérer l'outil de rognage lors de l'ajout d'une image.

    C'est ça hein?

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 112
    Points
    44 112
    Par défaut
    Tu pourrais regarder du coté de la propriété clip mais compte tenu des contrainte de positionnement, position:absolute exigée il faut un conteneur positionné et, de plus, comme l'image est en absolute elle n'influe pas sur les dimensions du conteneur qu'il faut donc également dimensionner oups!

    Dans ce cas passe directement par un conteneur dimensionné que tu souhaite et ayant un overflow:hidden.

    exemple :
    Code html : 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
    23
    24
    25
    <!DOCTYPE HTML>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>overflow:hidden</title>
    <style>
    html, body{
      margin:0;
      padding:0;
      font-size:100%;
      font: 1em/1.5 Verdana, sans-serif;
    }
    .vignette {
      width:108px;
      height:45px;
      overflow:hidden;
    }
    </style>
    </head>
    <body>
    <div class="vignette">
      <img src ="http://www.developpez.net/template/images/logo.png">
    </div>
    </body>
    </html>
    équivalent de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    img {
      clip:rect(0,108px,45px,0);
    }
    Si tu veux un "rognage" haut et gauche alors retour au [COLOR="#0000FF"]clip[/COLOR] ou à une image en background mais boff !

    [EDIT] Correctif:
    pour le rognage à gauche ou en haut tu peux jouer avec le margin de l'IMG.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    j'aurais pris l'autre solution de NoSmoking :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <figure class="imageflottanteProfil">
       <img alt="non disponible" src="<c:url value="/images/${ sessionScope.candidats.photo }"/>"   />
    </figure>
    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
    .imageflottanteProfil
    {
      position:relative;
      float: left;
      margin-right: 20px;
      width: 200px;
      height: 220px;
      overflow:hidden;
    }
    .imageflottanteProfil img
    {
      position:absolute;
      width:100%;
      top:0; left:0;
    }
    On ne touche pas à l'image originale.

  6. #6
    Membre actif
    Inscrit en
    Juin 2005
    Messages
    578
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 578
    Points : 240
    Points
    240
    Par défaut
    Ok merci ça marche

  7. #7
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    J'arrive après la bataille... mais j'ai juste une remarque quand à la solution proposé : elle ne fonctionne correctement qu'avec les images au format "paysage".
    Les images au format "portrait" seront rogné sur le bas...


    Je pense qu'il serait plus adapté d'utiliser max-width/max-height sur l'image :
    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
    .imageflottanteProfil
    {
      float: left;
      margin-right: 20px;
      width: 200px;
      height: 220px;
      background: red;
      line-height: 220px;
      text-align: center;
    }
    .imageflottanteProfil img
    {
      max-height: 100%;
      max-width: 100%;
      vertical-align: middle;
    }

    Exemple : http://jsfiddle.net/610xcjo4/


    a++

  8. #8
    Membre actif
    Inscrit en
    Juin 2005
    Messages
    578
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 578
    Points : 240
    Points
    240
    Par défaut
    tu as raison adiGuba, c'est beaucoup mieux

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

Discussions similaires

  1. Intégrer une image dans une div sans la déformer
    Par Paenitentia dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 05/12/2011, 13h09
  2. diminuer le "poids" d'une image sans réduire sa taille
    Par laurentSc dans le forum Imagerie
    Réponses: 6
    Dernier message: 04/04/2009, 23h55
  3. Afficher une image sans URL dans un forum
    Par Vanesse dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 2
    Dernier message: 01/03/2006, 17h55
  4. Afficher une image sans passer par les textures
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/05/2003, 19h13
  5. comment réduire une image jpeg (taille x*y)
    Par don-diego dans le forum C
    Réponses: 4
    Dernier message: 14/07/2002, 20h06

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