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 :

[HTML] Taille d'une image


Sujet :

HTML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juin 2005
    Messages : 63
    Par défaut [HTML] Taille d'une image
    Salut

    J'ai une question tout bete.

    Est-il possible en HTML de donner une taille maximale à une image.

    Un truc du style :

    si l'image <= taille alors on l'affiche tel quel
    Sinon on la affiche l'image avec la taille maximum autorisé


    Si pas possible est ce que l'ojn peut avoir cette possibilité avec du javascript, du CSS ou même du PHP???

    Merci pour vos réponses.

    Cordialement

    @+ Nico

  2. #2
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Par défaut
    En (X)HTML tu fixes la taille de ton image et cette taille ne sera pas dépassée. Par contre si elle est trop petite alors elle est redimensionnée à la taille que tu auras fixé. Donc pas top.

    En CSS même chose.

    En JavaScript c'est possible et même chose pour le PHP

  3. #3
    Membre Expert
    Avatar de Candygirl
    Femme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 912
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 912
    Par défaut
    en css:
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    img {max-width:200px;} /* taille maximum autorisé */
    Avec 2 bémols:
    • IE 6 n'interprète pas la max-width
    • Le redimensionnement par le navigateur pour les grandes images peut être assez moche.
    Les bons réflexes:
    • avant de poser une question:
      règles | faq | tutoriels | recherche
    • clarté, politesse, vocabulaire et orthographe soignés = efficacité
    • remercier ceux qui ont pris le temps d'aider et :resolu: si c'est le cas

  4. #4
    Membre confirmé Avatar de Lancelot du Lac
    Profil pro
    Inscrit en
    Février 2008
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 95
    Par défaut
    Je te conseille php, ce sera assez simple. Vive les technologies côté serveur! Et puis d'un autre côté pour le javascript je serais incapable de t'aider, j'y connais rien de rien.

    La fonction qui t'intéresse est getimagesize().

    Ensuite, tu peux utiliser l'opérateur ternaire si tu le souhaites dans ton CSS.

    Allez hop, du code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php $imagesize = getimagesize("C:/chemin/image.jpg") ?>
    img {
     width: <?php echo (($imagesize[0] > 200) ? "200" : $imagesize[0]); ?>px;
     height: <?php echo (($imagesize[0] > 200) ? (int) (200*$imagesize[1]/$imagesize[0]) : $imagesize[1]); ?>px;
    }
    Ce bout de CSS dynamique fera ce que tu veux, sous réserve qu'il n'y ait pas d'erreur. Il ne redimentionne que si la largeur de l'image est de plus de 200 pixels.

    Je suis au boulot, désolé pas possible de débugger. Néanmoins les autres te signaleront probablement les erreurs s'il y en a. Si tu décides de l'utiliser, reviens me dire si ça a marché.

    Je ne sais pas très bien comment on fait pour le mettre en place dans un ficher séparé du html, mais d'autres pourront t'expiquer. Sinon tu peux simplement le mettre dans le header html pour éviter les mises en cache qui pourraient te géner (dans ce dernier cas, place-le entre les balises style appropriées, of course).

    Hum, suis-je bête, à priori il n'est pas nécessaire de spécifier la hauteur. "height: auto;" devrait suffire, voire rien du tout comme fait Candy. Essaye sans rien pour voir.

    Ah oui, et comme il se doit, l'intérêt du php sera de te délivrer de la limitation mentionnée par Candy pour IE6.

  5. #5
    Membre Expert Avatar de Erwan31
    Profil pro
    Inscrit en
    Février 2008
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 2 177
    Par défaut
    Citation Envoyé par Lancelot du Lac Voir le message
    Hum, suis-je bête, à priori il n'est pas nécessaire de spécifier la hauteur. "height: auto;" devrait suffire, voire rien du tout comme fait Candy. Essaye sans rien pour voir.
    Dans ce cas non mais il peut être nécessaire pour adapter la hauteur de
    l'image homotétiquement lors du redimensionnement du viewport (zone d'affichage), seulement si la largeur de l'image est spécifiée en %.
    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    img {max-width:100%; height:auto}
    C'est d'ailleurs ce qu'il est conseillé de mettre dans la CSS pour le redimensionnement homotétique de l'image en cas de visualisation du document sur petits écrans.
    En effet il faut éviter de mettre du PHP ou JS dans la css principale car ils
    font perdre de mécanisme de mise en cache de la CSS par le navigateur.

  6. #6
    Membre confirmé Avatar de Lancelot du Lac
    Profil pro
    Inscrit en
    Février 2008
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 95
    Par défaut
    S'il fait du php, nicordi perd la mise en cache du css par les navigateurs. S'il fait du css seul, les utilisateurs d'IE6 n'obtiennent pas l'affichage correct de sa page...

    Le raffinement ultime serait de détecter le navigateur de l'utilisateur à l'aide de la superglobale $_SERVER['HTTP_USER_AGENT'], de basculer sur un fichier CSS cachable si celui-ci fait partie d'une liste de navigateurs connus pour interpréter max-width correctement, ou bien sur le CSS dynamique dans tous les autres cas.

Discussions similaires

  1. [HTML]Cellule de tableau à la taille d'une image (auto)
    Par leup dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 13/05/2006, 14h43
  2. [HTML?][XHTML?][CSS?] Une image dont la taille s'adapte
    Par zelda dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 11/11/2005, 10h19
  3. Recuperation de la taille d'une image avec la propriété SRC
    Par CDRIK dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 08/10/2004, 03h05
  4. [Applet][JTextPane][HTML]Accès a une image du JAR
    Par SamDaKap dans le forum Applets
    Réponses: 4
    Dernier message: 10/08/2004, 16h17
  5. [FLASH MX] taille d'une image
    Par matN59 dans le forum Flash
    Réponses: 2
    Dernier message: 10/06/2004, 10h51

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