28172 sujets

CSS et mise en forme, CSS3

Bonjour tout le monde, content d'entrer dans la communauté.

Et bien, je vous expose mon problème...

Je fais un site et je dois intégrer une galerie. Ce que je voudrais que ca fasse : Gallerie full CSS avec scrollbar
En bref, une simple galerie en full css, les vignettes utilisant une scrollbar Horizontale. Lorsqu'on passe avec la souris sur les vignettes, la photo apparait en plus grand au dessus et reste affichée lorsqu'on clique dessus.

Mon problème c'est que la photo grand format apparait au mauvais endroit. Elle apparait dans la div vignettes.
J'ai trouvé une demi solution au problème c'est que lorsque j'enlève le overflow, je peux positionner ma photo ou je le désire.
Mais si je fais ça je n'ai plus de scrollbar horizontale.

Mon CSS:

/* ================================================== */
/* ================================================== */
/* =====================Galerie====================== */
/* ================================================== */
/* ================================================== */


.vignettes{
	display:block;
	position:absolute;
	bottom:50px;
	left:50px;
	border:#000000 solid 1px;
	width:385px;
	height:90px;
	white-space:nowrap;
	[b]overflow:auto; /*l'overflow en question qui ajoute le scroll horizontal, lorsque je l'enlève plus de scroll mais la photo grand format peut s'afficherou je le veux*/[/b]
}

.mini{
	width:840px; height:60px;
}

a.gallery, a.gallery:visited {
	display:block;
	color:#000;
	text-decoration:none;
	width:75px;
	height:47px;
	margin:3px;
	float:left;
}

a.slidea {background:url(images/gallerie/mini/portrait/vignette_portrait_01.jpg);} /* vignettes*/
a.slideb {background:url();}
a.slidec {background:url();}
a.slided {background:url();}
a.slidee {background:url();}
a.slidef {background:url();}

a.gallery span{/*état photo grand format quand rien ne se passe, pas de vignettes survolées ni cliquées*/
	position:absolute;
	background:#efedec;
	z-index:1;
	visibility:hidden;
}

a.gallery:hover {white-space:normal; border:1px solid #fff;}
a.gallery:hover img {border:1px solid #000; z-index:100;}
a.gallery:active img, a.gallery:focus img {border:1px solid #000; z-index:50;}

a.gallery:hover span{ /*état photo grand format quand on passe sur les vignettes*/
	position:absolute;
	width:407px;
	height:290px;
	top:-200px;
	left:0px;
	padding:5px;
	color:#000;
	background:#fff;
	z-index:1;
	visibility:visible;}

a.gallery:active {border:1px solid #eee;} /*état des vignettes lorsqu'elle sont actives*/

a.gallery:active span, a.gallery:focus span { /*état de la photo grand format quand elle est active*/
	position:absolute;
	width:407px;
	height:290px;
	top:-200px;
	left:0px;
	padding:5px;
	color:#000;
	background:#fff;
	z-index:1;
}


Mon html:




<div class="titre_vignette">
    	Vignettes: <span class="texte-rose">Cliquez pour agrandir!</span>    </div>
	
    <div class="vignettes">
		<div class="mini">
			<a class="gallery slidea" href="#nogo" title=""><span><img src="images/gallerie/photo/portrait/portrait_01.jpg" alt="portrait_01" title="Portrait_01" ></span></a>
			<a class="gallery slideb" href="#nogo" title=""><span><img src="" alt="" title="" /></span></a>
			<a class="gallery slidec" href="#nogo" title=""><span><img src="" alt="" title="" /></span></a>
			<a class="gallery slided" href="#nogo" title=""><span><img src="" alt="" title="" /></span></a>
			<a class="gallery slidee" href="#nogo" title=""><span><img src="" alt="" title="" /></span></a>
			<a class="gallery slidef" href="#nogo" title=""><span><img src="" alt="" title="" /></span></a>
			<a class="gallery slideg" href="#nogo" title=""><span><img src="" alt="" title="" /></span></a>
		</div>
	</div>





Voilà, j'espère que vous pourrez m'aider... Ca me rend fou, j'ai recommencé plein de fois!!!

Alors S'il te plait Alsacréation, Tune mon code Smiley langue !

Merci d'avance à tous.


Bien à vous,

Damien.
Bonjour et bienvenue,

a écrit :
16 Feb 2008 - 13:08:16


a écrit :
16 Feb 2008 - 13:44:57


Impatient peut-être ? Smiley cligne
oui, quand même... c'est pour mon stage!

Et ça fait 3 jours que j'avance plus sur le site à cause de ce problème qui me hante jour et nuit!

*Désespoir*
Bonjour,

Tout effacer, et faire une galerie dynamique avec un langage prévu pour cela, à savoir Javascript.
Il y a même un tutoriel sur la question sur Alsacréations.
Modifié par Florent V. (16 Feb 2008 - 14:02)
Je vais pas tout éffacer.

C'était mon but de faire une galerie en full css, sans javascript, ajax ou flash... 100% CSS!

Enfin merci du conseil, si vraiment il n'y a pas d'autres solutions, je devrai m'y résoudre.

Bien à toi,

Damien.
Dmz. a écrit :
C'était mon but de faire une galerie en full css, sans javascript, ajax ou flash... 100% CSS!


Tiens, au passage, c'est amusant: le gars qui dit "je veux faire du 100% CSS" et celui qui dit "Je veux faire du 100% flash" (ou du 100% javascript) se trompent exactement de la même manière, bien-sûr. Mais historiquement, ils sont perçus de manière différentes... Smiley ravi
Modifié par Laurent Denis (16 Feb 2008 - 14:19)
Dmz. a écrit :
C'était mon but de faire une galerie en full css, sans javascript, ajax ou flash... 100% CSS!

Ok. C'est une erreur, mais si c'est que tu veux faire, c'est toi qui décide. Bon courage.
J'ai trouvé un solution bien que tordue mais solution tout de même...

En laissant l'overflow, sans position pour class:.vignettes et en appliquant un padding à celui-ci étant donné que le margin-top ne fonctionne pas...

Et la la barre de défilement horizontale reste, et est bien positionnée...La photo grand format s'affiche au dessus et non dans la div (vignettes) de l'overflow...

Seul petit problême je ne peux plus mettre de bordure autour de mes vignettes mais bon... On a rien sans rien!

En tout cas merci à tous et si quelqu'un à une solution qui ferait un peu plus propre, qu'il n'hésite pas, je suis toute ouïe!

Bien à vous,

Damien.
Pourquoi c'est une érreur?
Si CSS sait le faire pourquoi venir intégrer du javascript ou il faut obligatoirement avoir une plateforme installée sur le pc client?
Ici, tout le monde pourra visiter le site sans probleme de module externe non installé ou pour ceux qui désactive le js...

Est ce que ma démarche est si tordue que ça ? Pourquoi ?

Enfin j'aimerais bien savoir, en apprendre un peu plus est toujours bon à prendre!

Merci d'avance,

Damien.
Dmz. a écrit :
Pourquoi c'est une érreur?

Parce que CSS n'est pas fait pour ça. CSS est fait pour la mise en forme graphique et pas pour les comportements dynamiques. Et détourner les pseudo-classes telles que :hover pour émuler ce qu'on fait très bien et surtout mieux en Javascript est problématique pour les raisons suivantes:
- cela impose de bidouiller la structure HTML pour faire un truc pas terrible, posant souvent des problèmes d'accessibilité, peu utilisable avec CSS désactivés (oui parce que ça aussi c'est possible Smiley cligne ), etc.;
- on est très limité dans la gestion des évènements et donc dans les comportements dynamiques, et le résultat est souvent un fonctionnement ergonomiquement défaillant.

Bref, le résultat sera pas terrible, à l'image de l'exemple que tu as pris sur CSSPlay (un site que décidément je n'arrive pas à encadrer...).

Dmz. a écrit :
Si CSS sait le faire pourquoi venir intégrer du javascript

Pour la même raison que les tracteurs sont moins adaptés pour rouler en ville que les twingo. Le tracteur peut techniquement rouler dans les rues d'une ville, mais son véritable usage n'est pas là.

Dmz. a écrit :
ou il faut obligatoirement avoir une plateforme installée sur le pc client?

Javascript est intégré par la quasi-totalité des navigateurs web. Historiquement, l'implémentation de Javascript dans les navigateurs a précédé celle de CSS. Aucun plugin n'est nécessaire. Argument rejeté.

Quant aux utilisateurs qui n'ont pas Javascript ou qui l'ont désactivé (dans les 5%), eh bien il suffit d'avoir fait les choses correctement en respectant les principes d'amélioration progressive (on a une base HTML accessible et utilisable, et une surcouche Javascript qui «dynamise» le tout).

Voili voilou.

Le tutoriel dont je parlais plus haut est le suivant:
http://css.alsacreations.com/Tutoriels-JavaScript/galerie-photo-javascript

Il existe d'autres tutoriels et d'autres scripts JS pour des galeries d'images, qui colleront peut-être mieux au comportement que tu attends.

Enfin, je signale en passant qu'il n'est pas inutile d'avoir des connaissances même basiques en Javascript. Smiley cligne