Bonjour,

J'ai une question, est-il possible de "hacké" IE avec le css pour qu'il interprète un max-width sur une image et non un bloc. (j'ai lu la fac, mais cela ne résoud "que" le problème des blocs)

J'espère que je suis compréhensible, en tt cas merci pour vos réponses.

A plus!
Je ne suis pas sûr de bien comprendre la question. Tu voudrais, par le biais des CSS, limiter la largeur maximale d'une image ?

Je crains fort que cela ne soit pas possible.
Le truc c'est que j'ai une plateforme de download sur un site web ou pleins de gens peuvent downloader des images et tout.

Ces images peuvent ensuite être intégrer au site, mais si elles sont trop large, ça "détruis" le design. C'est pourquoi j'aimerais limiter la largeur des images avec la propriété max-width, qui fonctionne très bien avec Firefox mais pas avec IE (tu m'étonnes.)

Si c'est pas possible, il n'y aurait pas un autre moyen? (PHP, javascript ou autre?)

Merci.
Max-width ne réduit pas l'image, il crée une barre de défilement, non ?

Comme tu le dis il n'est pas interprété par IE 6 qui ne connaît que width. Il faut donc revoir ta façon de montrer ces images.
Modifié par CNeo (04 Jan 2007 - 13:04)
A la limite, les encapsuler dans un autre élément de bloc avec un overflow automatique et une largeur fixe. Mais ça risque de provoquer une prolifération des <div>.
Et il n'y aurait pas un moyen avec un autre type de code?

Parce que c'est vraiment important. Et les overflow, c'est pas tété...

Merci bien!
Bonjour,

En php tu ne devrais pas avoir de problème ...
Modifié par ghost (07 Jan 2007 - 00:55)
Ok merci, je vais regarder tout ça.

C'est vraiment la classe ce forum, je tenais à la dire... Smiley cligne
ça m'embête, je n'arrive pas à le faire.

Le tuto du lien que tu m'as donnée est bon pour créer des images, mais pas juste pour les redimmensionner, je comprends pas le principe...

Tanpis!

Merci ct équipe, la classe!
Bonjour,

En fait tu as plusieurs possibilités, soit tu réduits ton image à l'upload par le visiteur et tu l'affiches ainsi à la demande, soit tu l'uploades tel quel et tu la réduits à l'affichage... Les 2 solutions ont des avantages et des inconvenients.
Quoiqu'il en soit se sont des scripts php assez complexes (http://www.phpcs.com/recherche.aspx?r=Redimensionner+image&tr=source) et nécessitant quelques connaissances en php !!

Pour des utilisations moins sophistiquées et assez limitées au niveau qualité on peut se contenter d'utiliser le css pour fixer le witdh et le height par php. Il ne faut pas s'attendre à des miracles de compression, exactement ce que l'on obtiendrait de cette manière en manuel et sans bien entendu de perte de "poids" de l'image.

Par exemple ce bout de code pour te donner une idée.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >

<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>test</title>
<style>
#conteneur{
width: 800px;
overflow: hidden;
border: 1px solid black;
margin: auto;
} 

#image1{
margin: 10px;
background: green;
float: left;
}

#image2{
margin: 10px;
background: blue;
float: left;
}

#image3{
margin: 10px;
background: cyan;
float: left;
}

#image4{
margin: 10px;
background: yellow;
float: left;
}


</style>	
</head>
<body> 
<?php // largeurs et hauteurs pour une largeur fixe de 75px
$l1 = 100; $l2 = 200; $l3 = 60; $l4 = 50;  //données largeurs de départ
$h1 = 200; $h2 = 150; $h3 = 175; $h4 = 50;  //données hauteurs de départ
$lr = 75;									// largeur réduite fixe
$hr1 = (75/$l1)*$h1; $hr2 = (75/$l2)*$h2; $hr3 = (75/$l3)*$h3; $hr4 = (75/$l4)*$h4; // hauteurs proportionnelles

?>

<div id="conteneur">
<div id="image1" style="<?php echo 'width: '.$l1.'px; height: '.$h1.'px'?>">
</div>

<div id="image2" style="<?php echo 'width: '.$l2.'px; height: '.$h2.'px'?>">
</div>
<div id="image3" style="<?php echo 'width: '.$l3.'px; height: '.$h3.'px'?>">
</div>
<div id="image4" style="<?php echo 'width: '.$l4.'px; height: '.$h4.'px'?>">
</div>
 
<p style=" clear: both; text-align: center"> Boites représentant les images en dimensions normales</p>
<hr/>

<div id="image1" style="width: 75px; <?php echo 'height: '.$hr1.'px'?>">
</div>
<div id="image2" style="width: 75px; <?php echo 'height: '.$hr2.'px'?>">
</div>
<div id="image3" style="width: 75px; <?php echo 'height: '.$hr3.'px'?>">
</div>
<div id="image4" style="width: 75px; <?php echo 'height: '.$hr4.'px'?>">
</div>

<p style=" clear: both; text-align: center"> Boites représentant les images avec une largeur fixe de 75px et une hauteur proportionnelle à la hauteur d'origine afin de ne pas déformer l'éventuelle image</p> 

</div>
</body>
</html>



Ps: j'ai remplacé les images par des blocs...
Tiens, si tu veux du script php qui redimmensionne et renomme tes image (c'est un script de base, rebricolé qui permet de réduire la largeur, tout en gardant le ratio de l'image (hauteur/largeur)

Formulaire html

<form enctype="multipart/form-data" action="?tof=oui&amp;id=<?=$_GET['id']?>&amp;login=<?=$_GET['login']?>" method="post">

<label for="photo">Photo :</label><input type="file" name="fichier" id="fichier" size="15" />

<p><input class="bouton" type="submit" value="Ajouter une photo !" name="upload" /></p>

</form>


Code php

if(!empty($_GET['tof']))
{
	if(!empty($_POST['upload']))
	{
		$content_dir = '/homepages/***/equipement/maj/'; //ton dossier ou tu souhaite stocker tes photo
	
		if (is_uploaded_file($_FILES["fichier"]["tmp_name"])) {
			$nomphoto = strtolower($_FILES["fichier"]["name"]);
			$extension=strrchr($nomphoto,'.');
			$ext=stristr($nomphoto,'.');
			if($ext == '.php'){
				die("Les script en .php ne sont pas autorisés.");
			}
			elseif ($ext == '.exe'){
				die("Les fichiers en .exe ne sont pas autorisés.");
			}
			elseif ($ext == '.movie'){
				die("Les fichiers en .movie ne sont pas autorisés.");
			}
			elseif ($ext == '.mpeg'){
				die("Les fichiers en .mpeg ne sont pas autorisés.");
			}
			elseif ($ext == '.htm'){
				die("Les fichiers en .htm ne sont pas autorisés.");
			}
			elseif ($ext == '.pst'){
				die("Les fichiers en .pst ne sont pas autorisés.");
			}
			elseif ($ext == '.asp'){
				die("Les fichiers en .asp ne sont pas autorisés.");
			}
			elseif ($ext == '.init'){
				die("Les fichiers en .init ne sont pas autorisés.");
			}
			elseif ($ext == '.js'){
				die("Les fichiers en .js ne sont pas autorisés.");
			}
			else{
			$cheminPhoto = $_GET['id'] . $extension; //ici je renomme la photo
			rename($_FILES["fichier"]["tmp_name"], $cheminPhoto);
			move_uploaded_file($nomphoto, $content_dir);
			$chmod = chmod($cheminPhoto,0644);
			list($width, $height) = getimagesize("".$cheminPhoto."");
			
			if($width > '480') //si la largeur de l'image dépasse 480px alors je la redimmensionne
			{
			if($ext == '.jpg')
			{
			$source = imagecreatefromjpeg("".$cheminPhoto."");
			}
			if($ext == '.png')
			{
			$source = imagecreatefrompng("".$cheminPhoto."");
			}
			if($ext == '.bmp')
			{
			$source = imagecreatefrombmp("".$cheminPhoto."");
			}
			if($ext == '.gif')
			{
			$source = imagecreatefromgif("".$cheminPhoto."");
			}
			$largeur_source = imagesx($source);
			$hauteur_source = imagesy($source);
						
			$largeur_destination = 480; // largeur a definir
			$hauteur_destination = (($largeur_destination * $hauteur_source) / $largeur_source);
			
			$destination = imagecreatetruecolor($largeur_destination, $hauteur_destination);
			
			imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);
			
			if($ext == '.jpg')
			{
			imagejpeg($destination, $cheminPhoto);
			}
			if($ext == '.png')
			{
			imagepng($destination, $cheminPhoto);
			}
			if($ext == '.bmp')
			{
			imagebmp($destination, $cheminPhoto);
			}
			if($ext == '.gif')
			{
			imagegif($destination, $cheminPhoto);
			}
			}	

Modifié par Super_baloo8 (09 Jan 2007 - 02:52)
Yes vous assurez, j'ai encore quelques problèmes, mais ça devrait s'arranger...

Merci pour le coup de main ct équipe!

A bientôt!

PS si jamais je repasse si j'ai des soucis unsurmontables (mais bon j'aime les défis!)
Parfait !

Si tu as des améliorations à apporter aussi viens nous le dire, ca risque de nous interresser !

On est la pour échanger, c'est le but d'un forum !