28173 sujets

CSS et mise en forme, CSS3

Bonjour,
en préambule je voudrais signaler que suis absolument débutante en CSS. Smiley smile
Voici ma/mes questions :
J'ai réalisé, avec un tutorial glané, une petite galerie photo avec description des images qui correspond exactement à ce que je veux. J'ai bien compris le principe général, mais je bute sur des points essentiels (ce qui est normal, puisque je me suis mise au CSS il y a 3 jours).

Ma galerie se compose des éléments suivants :
1) 9 vignettes de 80 x 80px en bloc de 3 x 3
2) ces vignettes agrandissent les images par rollover avec une description.

sur le tutorial, les vignettes sont placées à droite, l'agrandissement des images et leurs descriptions à gauche[/b] donc...
Comme je souhaite que les vignettes [b]soient placées à gauche et la description à droite, j'ai simplement changé le container ul, float : right pour float left.
mais c'est avec avec la description que je me retrouve coincée... j'ai beau entrer des valeurs correspondant au nombre de pixels vers la droite, mais rien n'y fait...
j'aurais vraiment besoin de votre aide... je me permets de mettre la feuille de style

<style type="text/css">
/* choose a suitable font and center the #container div in Internet Explorer */
body {text-align:left; font-family: Verdana, Arial, Helvetica, sans-serif; arial, sans-serif; font-size:11px; letter-spacing:0.05em;}

/* The containing box for the gallery. */
#container {position:relative; width:770px; height:396px; margin:20px auto 0 auto; border:1px solid #aaa; background:#fff url(../images/back.jpg) 75px 10px no-repeat;}

/* Removing the list bullets and indentation - add size - and position */
#container ul {width:280px; height:386px; padding:0;  margin:5px; list-style-type:none; float:right;}

#container li {float:left;}

/* Remove the images and text from sight */
#container a.gallery span {position:absolute; width:1px; height:1px; top:5px; left:5px; overflow:hidden; background:#fff;}

/* Adding the thumbnail images */
#container a.gallery, #container a.gallery:visited {display:block; color:#000; text-decoration:none; border:1px solid #000; margin:1px 2px 1px 2px; text-align:left; cursor:default;}

#container a.slidea {background:url(p1.jpg); height:80px; width:80px;}
#container a.slideb {background:url(p1.jpg); height:80px; width:80px;}
#container a.slidec {background:url(p1.jpg); height:80px; width:80px;}
#container a.slided {background:url(p1.jpg); height:80px; width:80px;}
#container a.slidee {background:url(p1.jpg); height:80px; width:80px;}
#container a.slidef {background:url(p1.jpg); height:80px; width:80px;}
#container a.slideg {background:url(p1.jpg); height:80px; width:80px;}
#container a.slideh {background:url(p1.jpg); height:80px; width:80px;}
#container a.slidei {background:url(p1.jpg); height:80px; width:80px;}

/* styling the hovers */
#container a.gallery:hover {border:1px solid #fff;}
#container a.gallery:hover span {position:absolute; width:372px; height:372px; top:10px; left:75px; color:#000; background:#fff;}
#container a.gallery:hover img {border:1px solid #fff; float:left; margin-right:5px;}
#container a.slideb:hover img, #container a.slidei:hover img {float:right;}

</style>
</head>
<!--[if lte IE 6]>
<style>
#ads {display:none;}
#adsie {clear:both; text-align:center; width:750px; margin-top:10px;}
</style>
<![endif]-->

<body>
<h2>&nbsp;</h2>
<div id="container">
<ul>
<li><a class="gallery slidea" href="#nogo"><span><img src="p1.jpg" alt="Alpha" title="Alpha" /><br />ALPHA<br />Photographed by Dorota Mrowka, courtesy of the stock.xchng</span></a></li>
<li><a class="gallery slideb" href="#nogo"><span><img src="p3.jpg" alt="Minie" width="240" height="372" title="Minie" /><br />
  MINIE<br />Photographed by Jos&#233; Antonio Assis, courtesy of the stock.xchng</span></a></li>
<li><a class="gallery slidec" href="#nogo"><span><img src="p3.jpg" alt="Megan" title="Megan" /><br />MEGAN<br />Photographed by Rob Waterhouse, courtesy of the stock.xchng</span></a></li>
<li><a class="gallery slided" href="#nogo"><span><img src="p3.jpg" alt="Nancy" title="Nancy" /><br />NANCY<br />Photographed by Philip Keller, courtesy of the stock.xchng</span></a></li>
<li><a class="gallery slidee" href="#nogo"><span><img src="p3.jpg" alt="Missy" title="Missy" /><br />MISSY &amp; PANDA<br />Photographed by Kat Shurtz, courtesy of the stock.xchng</span></a></li>
<li><a class="gallery slidef" href="#nogo"><span><img src="p3.jpg" alt="Stray pup" title="Stray pup" /><br />STRAY PUP<br />Photographed by Bethan Hazell, courtesy of the stock.xchng</span></a></li>
<li><a class="gallery slideg" href="#nogo"><span><img src="p10.jpg" alt="Rolo" title="Rolo" /><br />ROLO<br />Photographed by Paul Leach, courtesy of the stock.xchng</span></a></li>
<li><a class="gallery slideh" href="#nogo"><span><img src="p8.jpg" alt="Gigio" title="Gigio" /><br />GIGIO<br />Photographed by Davide Guglielmo, courtesy of the stock.xchng</span></a></li>
<li><a class="gallery slidei" href="#nogo"><span><img src="p9.jpg" alt="Westy pup" title="Westy Pup" /><br />WESTY PUP<br />Photographed by Rob Waterhouse, courtesy of the stock.xchng</span></a></li>
</ul>
</div>


PS : par ailleurs, le container est trop grand, mais si je change sa taille, le container li empiète sur les vignettes...
+ ce qui m'échappe c'est que la description soit : tantôt à droite, tantôt à gauche... bon c'est tout pour l'instant Smiley cligne
Si qq'un a la patience de regarder ceci et me dire comment faire ce changement, je l'en remercie chaleureusement Smiley biggrin
source : http://www.cssplay.co.uk/articles/gallery/index.html
Bonjour et bienvenue Smiley smile
si tu débutes depuis 3 jours il est normal que tu ne parviennes pas à tes fins, tu ne t'attaques pas au plus simple ! Smiley rolleyes

Pour commencer, quand tu donnes du code, essayes de le présenter/indenter de manière clair (voir code ci-dessous).
Ne pas oublier les commentaires (<!-- -->) et d'indiquer le média (screen ici > css uniquement appliquée pour l'écran).

Voila le code corrigé et commenté:


<style type="text/css" media="screen">
<!--
/* choose a suitable font and center the #container div in Internet Explorer */
body {
	text-align:left; 
	font: 11px Verdana, Arial, Helvetica, sans-serif, arial, sans-serif; /*un ";" en trop supprimé*/
	letter-spacing:0.05em;
	}
/* The containing box for the gallery. */
#container {
	position: relative; 
	width: 600px;  /*diminutions de la largeur*/
	height: 396px; 
	margin: 20px auto 0; 
	border: 1px solid #aaa; 
	background: #fff url(../images/back.jpg) no-repeat 75px 10px;
	}

/* Removing the list bullets and indentation - add size - and position */
#container ul {
	float:left;
	width:280px; 
	height:386px; 
	padding:0;  
	margin:5px; 
	list-style:none; 
	}
#container li {float:left;}

/* Remove the images and text from sight */
#container a.gallery span {
	position:absolute; 
	overflow:hidden; 
	width:1px; 
	height:1px; 
	top:5px; 
	left:5px; 
	background:#fff;
	}

/* Adding the thumbnail images */
#container a.gallery, #container a.gallery:visited {
	display:block; 
	color:#000; 
	text-decoration:none; 
	border:1px solid #000; 
	margin:1px 2px 1px 2px; 
	text-align:left; 
	cursor:default;
	}
#container a.slidea, #container a.slideb, #container a.slidec, #container a.slided, #container a.slidee,
#container a.slidef, #container a.slideg, #container a.slideh, #container a.slidei {
	background: url(p1.jpg); 
	height:80px; 
	width:80px;
	}

/* styling the hovers */
#container a.gallery:hover {border:1px solid #fff;}
#container a.gallery:hover span {
	position:absolute; 
	width:250px;  /*valeur modifiée >  trop étroit*/
	height:372px; 
	top:10px; 
	left:340px; /*valeur modifiée*/
	color:#000; 
	background:#fff;
	border: 1px solid #00FF00
	}
#container a.gallery:hover img {
	float:left; 
	margin-right:5px;
	border:1px solid #fff; 
	}
#container a.slideb:hover img, #container a.slidei:hover img {float:right;}
-->
</style>


Tu peux écrire :
#container a.slidea {background:url(p1.jpg); height:80px; width:80px;}
#container a.slideb {background:url(p1.jpg); height:80px; width:80px;}
#container a.slidec {background:url(p1.jpg); height:80px; width:80px;}
#container a.slided {background:url(p1.jpg); height:80px; width:80px;}
#container a.slidee {background:url(p1.jpg); height:80px; width:80px;}
#container a.slidef {background:url(p1.jpg); height:80px; width:80px;}
#container a.slideg {background:url(p1.jpg); height:80px; width:80px;}
#container a.slideh {background:url(p1.jpg); height:80px; width:80px;}
#container a.slidei {background:url(p1.jpg); height:80px; width:80px;}


Plus simplement comme ce ceci en factorisant:
#container a.slidea, #container a.slideb, #container a.slidec, #container a.slided, #container a.slidee,
#container a.slidef, #container a.slideg, #container a.slideh, #container a.slidei {
	background: url(p1.jpg); 
	height:80px; 
	width:80px;
	}

Modifié par Hermann (13 Sep 2007 - 14:11)
Le texte est englobé dans le span qui contient l'image (si je lis bien). Créer une class pour le texte et l'intégrer dans un autre span ne pourrait il pas foncionner ?


en gros au lieu d'avoir


 <span class='truc'>
      <img />
         texte
 </span>


ca serait avoir un truc du genre


 <span class='truc'>
      <img />
         <span class='machin'>texte</span>
 </span>


EN GROS quoi.

Puisque des que tu bouge les propriétées du span (qui contient ET le texte ET l'imagine tu agis sur les deux).

Je suis pas un pro du "solutionnage" donc reprennez moi si je me trompe.
Rude
Modifié par ffwrude (13 Sep 2007 - 14:17)
je savais qu'en venant ici je tomberais sur des gens plus que compétents Smiley smile
je vous remercie d'avoir regardé mon code et de l'avoir corrigé.
Par ailleurs, Hermann, j'ai bien noté ce que tu me conseilles, même si je ne comprends pas tous les termes... je vais me référer aux indications données sur le bon fonctionnement du forum Smiley cligne

Il serait sans doute judicieux que je m'achète un livre (pas trop abscons) en auriez-vous 1 à me conseiller ?

Voici le site sur lequel je tente qq chose (pierreburaglio.com)... à l'heure actuelle en Flash mais en Loadmovie et tableaux, autant dire pas génial... c'est, en gros, l'aspect général que je veux/voudrais obtenir, mais en CSS...

ffwrude : merci aussi
Re bonjour,
je viens de tester le code d'Hermann, qui donne parfaitement ce que je recherche, (merci à toi) néanmoins, et c'est la raison pour laquelle je repost, la description n'apparaît pas... un rectangle vert encadre chaque image .

J'ai fait l'essai avec Firefox et Safari (je n'ai IE, suis sur Mac).

Je vais essayé de suivre le conseil de ffwrude et créer une class, mais là je patauge complètement Smiley rolleyes
J'aurais encore besoin de vous, merci Klo
(pour pouvoir lire la description) je ne sais pas si c'est bien de faire ainsi... mais bon j'ai essayé
sur :
#container a.gallery:hover span {

	position:absolute; 

	width:300px;  /*j'ai modifié la valeur

	height:390px; /*j'ai modifié la valeur

	top:5px; /*j'ai modifié la valeur

	left:310px; /*valeur modifiée*/

	color:#999999; /* 

	background:#fff;

	border: 1px solid #999999 [cligne] 
	}

Je vois la description et les images (redimensionnées)...
par ailleurs j'ai indiqué la taille des images en with et height :

<li><a class="gallery slided" href="#nogo"><span><img src="p3.jpg" alt="Nancy" width="237" height="315"title="Nancy" /><br />NANCY<br />Photographed by Philip Keller, courtesy of the stock.xchng</span></a></li>

Evidemment je fais ça à l'aveuglette, si je suis sur la mauvaise route merci xxxxx fois de me le dire Smiley cligne
klo64 a écrit :

...par ailleurs j'ai indiqué la taille des images en with et height :

Tu as bien fais : les attributs de taille sont utiles aux navigateurs pour appareils portables (PDA, smartphone...).
En revanche il te faut supprimer l'attribut title qui n'est ici pas pertinent
(et rarement sur une image) et n'est d'ailleurs pas implémenté par Safari et Opera (> v.8).
Celui-ci doit fournir sous forme d'info-bulle, une information supplémentaire, le plus souvent sur un lien.
a écrit :
En revanche il te faut supprimer l'attribut title qui n'est ici pas pertinent
je l'avais supprimé Smiley cligne

Je sens que je vais adorer le CSS, mais ça prend un temps fou, quand on n'a pas les automatismes

Je vois que vous êtes partenaire de Eyrolles, j'ai plusieurs livres de cette édition, mais y en a-t-il 1 en particulier ?

Je pense que je vais passer par ici souvent, on est bien chez vous Smiley cligne , je voudrais tout refaire sur ce site là :

merci, merci.