28172 sujets

CSS et mise en forme, CSS3

Bonjour,

Je vous soumets un problème pour lequel je ne suis pas sûr qu'il y ait une solution, je tente ma chance.

Je souhaite mettre en place un menu de navigation (type accordéon) pour partie masqué par une div avec image en background dont une partie est en transparence. Cette div est position absolute.

Mon menu fonctionne très bien.
En revanche, le div avec image en background masque le menu et... bloque la zone cliquable sur une partie du menu.

Avec un dessin ce sera plus clair.
Ci-dessous, la zone encadré en rouge (correspondant à la div 'absolute' taillée aux dimensions de l'image en background) n'est pas cliquable.
Y a-t-il un moyen permettant de rendre cliquable cette partie visible du menu ?

J'espère avoir été clair.
Je suis preneur de toute bonne solution !
upload/15350-capture.jpg
Salut, tu peux essayer en jouant avec les z-index des liens mais dans ce cas il faut que tes liens soient des block (display:block ou inline-block) et qu'ils aient une position relative ou absolute. Tu applique au liens un z-index:3; et à la div en image verte un z-index:2; et le fond bleu de tes menus sur des li éventuellement en z-index:1 (normalement inutile pour les li si ils sont déjà en dessous dans le code html). Par contre le texte du lien va repasser par dessus l'image verte. A toi de voir ! A+ (PS : c'est agaçant de ne pas pouvoir sauter de ligne en répondant sur le forum... ça ne me fait pas ça d'habitude c'est étrange Smiley ohwell )
Salut,
merci de ta réponse.

J'ai effectivement essayé de jouer avec le z-index.
Mais dans tous les cas les liens ou la liste repasseront par dessus ce que je veux éviter.
Je crois que je suis mal embarqué...
Je pense aussi que seul les z-index te permettront de faire ce que tu veux.

Par contre par rapport à ce que tu nous a dit, la parti verte sera du coup en dessous de ton menu et donc cela ne te conviendra pas.

Pour remédier à cela, il y a peut être une solution:
découpe tes image de fond en plusieurs petites images, et positionne les toutes indépendamment avec des position absolute, z-index, etc. et utilise les rotation en CSS 3.
Bonne idée la rotation, (même si je crains la compatibilité) mais mes tests n'ont pas permis de 'désactiver' la zone du div qui me gène.

En revanche, comme tu me le soumets, en passant tout simplement par plusieurs petites images (et en sacrifiant une petite zone cliquable du menu) ça devrait le faire.
En fait l'idéal pour moi aurait été de de pouvoir définir la forme de ma div, en l'occurrence de façon triangulaire (comme une zone map en fait).

CSS3 ne permet pas de faire ça ?
Une autre solution moins compliquée que le découpage petites images, tu crées une nouvelle liste vide par dessus tout en remplissant d'un gif transparent et tu redéfinis les mêmes liens que pour tes menus situées en dessous sur ces zones cliquables transparentes. C'est un peu de la bidouille mais pour pouvoir cliquer sur qqch qu'on ne voit pas (le texte caché des liens) je ne vois pas trop d'autres solutions. A+