Bonjour tlm:

Je suis en train de faire un site ou y’aura une galerie photos, j’ai trouvé un tuto http://css.alsacreations.com/Tutoriels-JavaScript/galerie-photo-javascript que j’ai repris, et ca marche à merveille, seulement j’ai du mal avec la mise en forme CSS, je veux en fait avoir différents models de positionnement :
1- http://img233.imageshack.us/img233/3308/positionnement01dg8.jpg
2- http://img217.imageshack.us/img217/6743/positionnement02vr9.jpg
3- http://img219.imageshack.us/img219/729/positionnement03ga1.jpg

Je suis sure que ca doit être facile à réaliser en changeant un peu le CSS, mais j’y suis depuis hier et je ne trouve pas encore ! j’ai essayer de faire le positionnement 2 et voilà ce que ca me donne ...> http://cenestquuntest.site.voila.fr/index.htm


Est ce que qqun aurait le temps pour m’aider un peu ? merci Smiley smile
Salut.

Une solution serait de positionner la liste des miniatures en "float: left;" et de supprimer le "clear: both;" qui est appliqué sur la liste de définition contenant l'image agrandie :
ul#galerie_mini
{
	margin: 0 ;
	padding: 0 ;
	list-style-type: none ;
        float: left;
}
dl#photo
{
	margin-left: 55px;
}
dl#photo dt
{
	font: 1.5em/1.5em Arial, serif ;
	color: #CCCCCC ;
        margin-left: 12px;
}
dl#photo dd
{
	margin: 0 ;
        text-align: center;
}
Le problème, c'est qu'en faisant ça, la liste des miniatures va sortir du cadre censé contenir la gallerie.

On doit ajouter un élément dans le code html, juste avant de refermer le div #galerie, par exemple :
<p id="clear"></p>
et on lui applique le style
p#clear {
    clear: both;
}
Cette propriété va obliger le paragraphe #clear à s'afficher en dessous des flottants, et il va entraîner le conteneur noir avec lui.
Bonsoir,
Deux petites réserves par rapport aux conseils de Sopo : j'ajouterais plutôt overflow:hidden à div#galerie pour éviter le débordement du flottant (et qui ne se produira pas avec IE du fait de la largeur) plutôt que que d'ajouter <p id="clear"></p>

Je ne mettrais pas ce margin-left à dl#photo mais un text-align:center , du moins s'il n'y a pas besoin de styler le fond de celui-ci
Modifié par Alan (19 Aug 2006 - 22:57)
Bonsoir Sopo, bonsoir Alan :
Sopo Merci, ta réponse m’était précieuse, effectivement ca marche 5 Alan je vais de ce pas essayer ce que tu propose ), mais hélas je rencontre un autre problème avec le JavaScript, je vous explique ... vu que j’ai donc deux différentes galeries de photos :
1 - la première avec les « mini images » en horizontales en haut : http://cenestquuntest.site.voila.fr/galerie01.php
2 - la seconde avec les « mini images » verticales à gauche : http://cenestquuntest.site.voila.fr/galerie02.php sur ma feuille CSS ( je dois avoir une seule feuille de style ) et pour avoir deux styles différent (l’un horizontal l’autre vertical) j’ai fait laissé pour la première galerie les ID du Tuto : (#galerie, #photo …) et pour la deuxième j’ai crée de nouveaux ID (#galerie_v, #photo_v …) qui vont avec les div sur le fichier galerie02.php ... et jusque là tout marche bien

Mon problème est avec le JavaScript, une fois que les ID sur la 2eme galerie ont étés changés j’ai crée une nouveau fichier : script_v.js et j’ai essayé de changer les ID dedans aussi mais ca ne marche pas, donc quand je clique sur les photos de la 2eme galerie, elles ne s’ouvrent pas DANS le cadre, ( en fait elle tiennent pas compte du Java script ) que dois-je modifier SUR le JavaScript pour que ca marche ?


Voilà les codes de la 2eme Galerie :

HTML/PHP:


<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link href="style.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="script_v.js"></script>
</head>

<body>
Galerie 2
<br/><br/>
<div id="galerie_v">
		<ul id="galerie_mini">
		<li><a href="images/photo1.png" title="Titre de la photo 1"><img src="images/minis/m_photo1.png" alt="Le titre de la photo 1" /></a></li>
		<li><a href="images/photo2.png" title="Titre de la photo 2"><img src="images/minis/m_photo2.png" alt="Le titre de la photo 2" /></a></li>
		<li><a href="images/photo3.png" title="Titre de la photo 3"><img src="images/minis/m_photo3.png" alt="Le titre de la photo 3" /></a></li>
		<li><a href="images/photo4.png" title="Titre de la photo 4"><img src="images/minis/m_photo4.png" alt="Le titre de la photo 4" /></a></li>
		<li><a href="images/photo5.png" title="Titre de la photo 5"><img src="images/minis/m_photo5.png" alt="Le titre de la photo 5" /></a></li>
		<li><a href="images/photo6.png" title="Titre de la photo 6"><img src="images/minis/m_photo6.png" alt="Le titre de la photo 6" /></a></li>
		<li><a href="images/photo7.png" title="Titre de la photo 7"><img src="images/minis/m_photo7.png" alt="Le titre de la photo 7" /></a></li>
		<li><a href="images/photo8.png" title="Titre de la photo 8"><img src="images/minis/m_photo8.png" alt="Le titre de la photo 8" /></a></li>
		<li><a href="images/photo9.png" title="Titre de la photo 9"><img src="images/minis/m_photo9.png" alt="Le titre de la photo 9" /></a></li>
		<li><a href="images/photo10.png" title="Titre de la photo 10"><img src="images/minis/m_photo10.png" alt="Le titre de la photo 10" /></a></li>
	</ul>

	
	<dl id="photo_v">
		<dt>Twin Palmers</dt>
		<dd><img id="big_pict" src="images/photo1.png" alt="Twin Palmers" /></dd>
	</dl> <br/>
<p id="clear"></p>
</div>
</body>
</html>



CSS :

/* galerie avec les images verticales */

div#galerie_v {
	width: 550px;
	height: 550px;
	border: 1px solid #666666;
	text-align: center;
	background-color: #FF00FF;
}
ul#galerie_mini_v {
	margin: 0 ;
	padding: 0 ;
	list-style-type: none ;
	float: left;
}
dl#photo_v {
	margin-left: 55px;
}
dl#photo_v dt {
	color: #666666;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 12px;
	font-style: normal;
	line-height: 40px;
}
dl#photo_v dd {
	margin: 0 ;
	 text-align: center;
}


JS :


function displayPics()
{
	var photos = document.getElementById('galerie_mini_v') ;
	// On récupère l'élément ayant pour id galerie_mini
	var liens = photos.getElementsByTagName('a') ;
	// On récupère dans une variable tous les liens contenu dans galerie_mini
	var big_photo = document.getElementById('big_pict') ;
	// Ici c'est l'élément ayant pour id big_pict qui est récupéré, c'est notre photo en taille normale

	var titre_photo = document.getElementById('photo').getElementsByTagName('dt')[0] ;
	// Et enfin le titre de la photo de taille normale

	// Une boucle parcourant l'ensemble des liens contenu dans galerie_mini
	for (var i = 0 ; i < liens.length ; ++i) {
		// Au clique sur ces liens 
		liens[i].onclick = function() {
			big_photo.src = this.href; // On change l'attribut src de l'image en le remplaçant par la valeur du lien
			big_photo.alt = this.title; // On change son titre
			titre_photo.firstChild.nodeValue = this.title; // On change le texte de titre de la photo
			return false; // Et pour finir on inhibe l'action réelle du lien
		};
	}
}
window.onload = displayPics;
// Il ne reste plus qu'à appeler notre fonction au chargement de la page



Les fichiers correspondants
http://cenestquuntest.site.voila.fr/galerie02.php
http://cenestquuntest.site.voila.fr/script_v.js
http://cenestquuntest.site.voila.fr/style.css


[/i]
Modifié par bettina (20 Aug 2006 - 00:03)
Bonsoir bettina,

Pourrais-tu éditer ton message afin de le mettre correctement en forme (le code doit se placer entre les balises [code ] [/code ], sans espace avec l'accolade fermante. Un bouton est là pour cela.)
Par avance merci Smiley cligne
Modifié par Alan (19 Aug 2006 - 23:45)
Bien sur , je suis désolée je ne savais pas comment faire Smiley smile ca y'est c'est fait Smiley smile
Modifié par bettina (19 Aug 2006 - 23:54)
Bonjour je me suis fait mal comprise je crois Smiley confused personne ne m’a répondu, et j’ai vraiment besoin de la réponse Smiley eek Smiley biggrin

Alors je ré-explique de façon plus courte Smiley smile pour le Tuto c’est simple on a bien sur donné des noms aux div et id en l’occurrence (div id= "galerie", ul id="galerie_mini" et dl id="photo") SI ON CHANGE ces noms et on en donne d’autres (div id= "galerie_v", ul id="galerie_mini_v" et dl id="photo_v") QUE DOIT ON changer sur le code JS pour que ca marche ????

merci pour votre aide Smiley smile
Salut
a écrit :

QUE DOIT ON changer sur le code JS pour que ca marche


A priori il faut changer la chaine de caractère des getElementById('') du script

par exemple

document.getElementById('galerie_mini')

deviendra

document.getElementById('galerie_mini_v')
merci pour ta réponse mais ca ne marche justement pas , dans mon code JS j'avais changé tt comme toi cette chaîne de caractères ( voir plus haut ) et ca ne marchait tjs pas ? Smiley smile
bettina a écrit :
merci pour ta réponse mais ca ne marche justement pas , dans mon code JS j'avais changé tt comme toi cette chaîne de caractères ( voir plus haut ) et ca ne marchait tjs pas ? Smiley smile


Donnes nous l'ensemble des codes en l'état actuel qu'on puisse mieux visionner où tu en es.

Depuis le début du topic ça a dû évoluer un peu Smiley cligne
Euh perso c'est réglé... La faute à " tête en l'air".
Mon problème venait du fait que le javascript était une feuille à part. Si j'avais bien mis le lien dans le head, j'avais omis de mettre sur mon serveur la feuille en question. ><
Comme quoi il ne faut pas chercher très loin parfois Smiley ohwell