28172 sujets

CSS et mise en forme, CSS3

Bonjour à tous,

depuis le temps que je regarde vos forums, me voici intervenant.

J'ai un menu créé en css3, avec l'aide d'exemples sur ce même site.
Très inspiré de cet exemple là :
http://www.alsacreations.com/xmedia/tuto/exemples/transitions/menu2.html
La petite différence sur mon menu, c'est que sous les images qui glissent sur la droite, j'y ai mis des liens dans les balises <li>, en deuxième niveau donc.
Et bien, ces liens ne sont pas cliquables, le lien qui reste activable c'est celui qui dépend de l'image qui vient de glisser.
J'ai fait plein d'essais, et je ne trouve pas, j'ai même l'impression que ce n'est pas possible, vu que pour que l'image glisse à droite, il faut qu'elle soit un lien, et ce lien reste actif.
Je mets le code css et le html :

Je reviens, j'ai lu sur un autre message, un auteur se faire réprimander pour la présentation de son message.
Alors avant que ce gentil (gentille en fait) vienne me gronder, je fais de l'autocorrection, car il est vrai que mon message est assez illisible.

Normalement, maintenant, ça passe mieux.




ul
{
margin:0 0 0 25px;
padding:0;
list-style:none;
}
#menu>li
{
      position: relative;
			display: inline-block;
			vertical-align: top;
			background:#333;
			font-family: Arial, Helvetica, sans-serif; 
      font-size:100%;
			color: #fff;
      height: 200px;
      width: 200px;
      margin: 0 0 0 10px;
      padding: 0;
			
}	
li ul 
{
      font-size: 0.85em;
      margin: 8px;
      line-height: 1.4;
}
li img 
{
		  position: absolute;
		  left: 0;
		  top: 0;
		  border: none;
		/* webkitpour chrome et safari */

			-webkit-transition-property: padding-left;
			-webkit-transition-duration: .5s;
			-webkit-transition-timing-function: ease-out;

			/* moz pour firefox mozilla */

			-moz-transition-property: padding-left;
			-moz-transition-duration: .5s;
			-moz-transition-timing-function: ease-out;
			
			/* mos pour ie a partir du 10 */

			-mos-transition-property: padding-left;
			-mos-transition-duration: .5s;
			-mos-transition-timing-function: ease-out;


			/* … pour quand ça sera standard */

			transition-property: padding-left;
			transition-duration: .5s;
			transition-timing-function: ease-out;
}
li img:hover, img:focus 
{
			padding-left:140px;
}
li a
{
			color:#cf9909;
			text-decoration:none;	
}
li a:hover
{
			color:#ffffff;
}



et le html :


<ul id="menu">

<li id="option_1">
<ul>
<li><a href="index.php?contenu=presentation" title="Présentation">Présentation</a></li>
</ul>
<a href="#"><img alt="Présentation" src="style_css/presentation_menu.jpg" /></a>
</li>

<li id="option_2">
<ul>
<li><a href="index.php?contenu=classique" title="La Classique">La Classique</a></li>
<li><a href="index.php?contenu=passe-partout" title="La Passepartout">La PassePartout</a></li>
<li><a href="index.php?contenu=transat" title="La transat">La Transat</a></li>
</ul>
<a href="#"><img alt="Les Balancelles" src="style_css/balancelle_menu.jpg" /></a>
</li>

<li id="option_3">
<ul>
<li><a href="index.php?contenu=banc" title="Banc">Les Bancs</a></li>
<li><a href="index.php?contenu=etagere" title="Les Etageres">Les Etagères</a></li>
<li><a href="index.php?contenu=divers" title="Divers">Divers</a></li>
</ul>
<a href="#"><img alt="Autres Choses" src="style_css/autreschoses_menu.jpg" /></a>
</li>

<li id="option_3">
<ul>
<li><a href="index.php?contenu=devis" title="Devis">Devis-Contact</a></li>
<li><a href="index.php?contenu=faire_connaitre" title="Faire Connaître">Faire Connaître</a></li>
<li><a href="index.php?contenu=faire_connaitre" title="Actualité/Blog">Actualité / Blog</a></li>
</ul>
<a href="#"><img alt="Communication" src="style_css/communication_menu.jpg" /></a>
</li>

</ul>


Je ne suis pas habitué des forums, pas en tant qu'acteur du moins, alors veuillez m'excuser pour la présentation de ce post.

Si vous avez bien compris mon souci, je serais de lire vos conseils.

Merci et bonne soirée.
Modifié par chezmachin (05 Mar 2012 - 19:01)
Bonjour,

D'abord tu met 2 fois l'id="option_3" ors un id ne peut être utilisé qu'une seule fois. Utilise une class à la place.

Ensuite, je ne suis pas sur que ton problème vienne de là, mais peut-etre qu'il y a un souci au niveau du lien que tu met a img. Oui tu met un lien href="#".

Je pense qu'en enlevant ce lien qui apparemment ne sert pas, tes liens sous les images devraient fonctionner. En tout cas en essayant cette solution chez moi, le lien de "présentation" s'active et me redirige bien (enfin Smiley ravi bien dans le sens où le lien se lance au click et pas bien dans le sens où je n'ai pas tes autres pages alors le navigateur ne dit page introuvable).

Voila j'espère avoir pu t'aider correctement. Smiley langue
Bonsoir mel,

content de lire ta réponse.

l' "option_3" répétée deux fois, je corrigerais, mais pour ce cas, elle ne sert à rien, il n'y a rien dans le css concernant ces options, je les ai mises ici au cas ou je voudrais différencier les effets de ces <li> justement.
Par contre, pour le lien sur les images qui reste en <a href="#"> c'est justement pour utiliser le hover de ces liens, sinon comment puis-je utiliser le mouvement avec transition si l'image n'est pas un lien ?
Quand tu enlèves ce lien sur l'image, est-ce que cette image change de place ?
Je vais essayer.
Mais peut-être ne vois-je pas ce qui est évident ?
Il est vrai que j'ai toujours tendance à me compliquer la vie.

Merci.
Au plaisir.
Modifié par chezmachin (08 Mar 2012 - 19:46)
Rebonsoir mel,

je reviens après mon petit essai.

"option_3" répétée deux fois -----> corrigé.
J'ai enlevé le lien de l'image pour présentation, et ben tu sais quoi, l'image bouge toujours, comme quoi quelques fois je me fais des idées toutes faites.

Mais, mais, mais le lien "présentation" qui apparait n'est toujours pas fonctionnel, bien qu'il apparaisse réellement comme un lien (j'ai supprimé /*text-decoration:none; */ pour le voir).
Le curseur ne se transforme même pas en main.

J'ai eu un problème sur une autre transition que j'ai résolu en changeant de propriété.
J'utilisais "padding-top" et toutes les images voisines descendaient en même temps.
J'ai pris "padding-bottom" et ça fonctionne bien.

Pour le coup qui nous intéresse ici, j'utilise "padding-left" que j'augmente et forcément le lien "présentation" est sous le "padding-left", alors je vais essayer le "padding-right" que je diminuerai et donc le lien devrait se trouver libéré.
Enfin ça c'est dans ma tête que ça fonctionne, mais souvent le micro y voit pas comme moi.
Je n'ai pas le temps ce soir, je fais le test demain.

Je vous tiens au courant.
Encore merci.

Rudy.
Bonjour chezmachin,

C'est bizarre pour ton lien sur "présentation" car chez moi cela fonctionne Smiley rolleyes . Ah si c'est bon je vois ce que tu veux dire. Essaie encore mais va doucement avec ta souris et tu verra quand ton image se décale, descend doucement ta souris sur le mot présentation et quand ten ai presque "sortie" (du mot "présentation") ta souris se transforme en main et j'ai remplacé ton lien par un à moi et sa fonctionne. Smiley biggrin

Le seul hic c'est le lien est détecté tard, mais je pense que cela est du a la taille de l'image.

En tout cas le lien marche.

Autre point le href sert à faire un lien avec une autre page (ou une ancre) donc ne détermine pas le style ni le comportement de ton image. Le fait qu'elle bouge est déterminé dans ton css.

N'hésite pas si tu as d'autres soucis.
Modifié par mel2412 (09 Mar 2012 - 09:23)
bonsoir mel,
pas eu le temps de tester avec mon padding-right.

Je te remercie, je connais la balise <a href >, on ne se connais pas c'est normal tu doutes.

Mais si tu veux, c'est le hover que je croyais uniquement lié aux liens, c'est bête mais bon...
Par contre, je suis content grâce à toi, j'ai appris ça, et pour moi c'est beaucoup, car ça me facilitera le boulot par ailleurs.

Je vais essayer de faire mon test ce weekend.

Bon weekend.
bonjour,

non pas de solution.
Je dirige sur une page intermédiaire dans laquelle je mets les leins inaccessibles du sous-menu.

Je pensais à une solution mais pas eu le temps de tester, je suis sur un autre projet.

Ce serait de faire une zone cliquable sur l'image qui bouge, cette zone ne devrait pas recouvrir les liens derrière l'image. Quand l'image glisse les liens de derrière devraient être accessibles puisqu'ils ne sont pas derrière la zone cliquable.

Je ne suis pas sur de me faire bien comprendre ?
Si tu saisis, dis moi si ça fonctionne.

Bon courage.