28172 sujets

CSS et mise en forme, CSS3

Bonjour,

Dans le cadre de la mise en place (bénévole) d'un site pour une association, je cherche à réaliser un menu horizontal à déroulement vertical à trois niveaux.

Ma question porte sur l'apparition du dernier niveau des catégories : il reste absent lors du survol. Comment le faire apparaître ? Je dois avouer que je suis un peu perdu dans les propriétés css.

Voici le code html :


<div>
<ul id="nav">
	<li><a href="#">Accueil</a>
	</li>

	<li><a href="#">L'Association</a>
		<ul>
			<li><a href="#">Présentation</a></li>
			<li><a href="#">Historique</a></li>
			<li><a href="#">Assemblées générales</a></li>
			<li><a href="#">Bulletins mensuels</a></li>
			<li><a href="#">Hommages</a></li>
			<li><a href="#">Adhésion</a></li>
			<li><a href="#">Annuaire</a></li>
				<ul>
					<li><a href="#">Anciens membres</a><li>
					<li><a href="#">Membres depuis 2000</a></li>
					<li><a href="#">Membres depuis 2008</a></li>
				</ul>
			<li><a href="#">Contact</a></li>
		</ul>
	</li>

	<li><a href="#">Activités</a>
		<ul>
			<li><a href="#">Opération calendrier</a></li>
			<li><a href="#">En construction</a></li>
		</ul>
	</li>

	<li><a href="#">Bulletins</a>
		<ul>
			<li><a href="#">Anciens bulletins de l'association</a></li>
			<li><a href="#">Le mot du président</a></li>
			<li><a href="#">Trésorerie</a></li>
			<li><a href="#">Nos adhérents agissent</a></li>
		</ul>
	</li>

	<li><a href="#">Memento</a>
		<ul>
			<li><a href="#">Infos Carrières</a></li>
			<li><a href="#">Infos</a></li>
			<li><a href="#">Offres</a></li>
				<ul>
					<li><a href="#">Achats / ventes de livres</a></li>
					<li><a href="#">Soutiens scolaires</a></li>
				</ul>
			<li><a href="#">Liens utiles</a></li>
		</ul>
	</li>

	<li><a href="#">Photos des adhérents</a>
	</li>
</ul>
</div>


J'ai appliqué des propriétés css pour la mise en forme.
Voici le code correspondant :


#nav, #nav ul {padding: 0; margin: 0; list-style:none; color: #002060; text-align: center; line-height: 1.5; }

#nav a {display: block;	width: 133px; line-height: 2.3; background-color: #ddd9c3; margin: 0; padding: 0; font-size: 12px; font-weight: bold; text-decoration: none; font-family: georgia;}
#nav li {float: left; width: 133px; margin: 0; padding: 0; border: 2px solid #696969; }
#nav li ul {position: absolute;	width: 133px; left: -999em; border: 0px solid #696969; }
#nav li ul ul {margin: 0 0 0 8.45em; }
#nav a:hover {left: auto; background-color: #ddd9c3;}
#nav li:hover ul, #nav li.sfhover ul {left: auto;}
#nav li:hover ul ul, #nav li.sfhover ul ul {left: -999em;}
#nav li:hover ul, #nav li li:hover ul, #nav li.sfhover ul, #nav li li.sfhover ul {left: auto;}


sfhover correspondant à un javascript que j'ai tenté d'écrire pour la compabitilité. Même si ma question porte sur le css, pour info, le voici:
<script type="text/javascript">
sfHover = function() {
	var sfEls = document.getElementById("nav").getElementsByTagName("LI");
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onmouseover=function() {
			this.className+=" sfhover";
		}
		sfEls[i].onmouseout=function() {
			this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
		}
	}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);
</script>


Tout ce passe correctement...pour le premier déroulement.. Pas pour le dernier ! Smiley decu

Je vous serai donc reconnaissant pour votre aide et vos critiques éventuelles. Smiley smile

Merci
[/i][/i]
Cedric49 a écrit :
je cherche à réaliser un menu horizontal à déroulement vertical à trois niveaux.

Un peu HS mais je ne peux m'empêcher de signaler qu'il s'agit là d'une grosse erreur de construction et d'ergonomie…
Hello,

Je vais être hors-sujet (ou plutôt contourner le sujet pour poser les bonnes questions Smiley cligne ) comme Benjamin:

1. Mon impression est que le contenu de ce site est trop fourni pour une communication efficace, et que par ailleurs il est mal organisé. La plupart des contenus esquissés dans ce menu (qui ressemble, par sa complexité, à un plan du site) n'intéressera personne. Ou bien n'intéressera que de rares visiteurs, et dans ce cas mieux vaut «planquer» un peu ces contenus (accessibles par des liens en pied de page par exemple) et indiquer de temps en temps par courriel ces liens aux dix personnes par an intéressées par ces contenus. Attention également aux intitulés qui utilisent un jargon propre à l'association («Bulletin» passe encore, mais «Memento» non), aux entrées dupliquées («L'association > Bulletins mensuels» et «Bulletins»), aux pages «en construction» (à bannir!). Et pourquoi les «photos des adhérents» sont-elles une entrée de premier niveau, et pas une page dans la partie «L'association»?

Voilà pour l'architecture des contenus. Mon sentiment (peu informé car je ne connais pas l'association, mais ça n'a pas l'air d'être une très grosse association comme Médecins sans frontières ou ATD Quart Monde Smiley cligne ) est qu'une demi-douzaine de pages très bien rédigées servirait mieux l'association que la trentaine de pages prévues ici.

2. En ce qui concerne l'ergonomie, j'abonde dans le sens de Benjamin. Les menus déroulants à trois niveaux, c'est le mal. Les menus déroulants sur deux niveaux sont déjà beaucoup plus utilisables; pour ces derniers, on veillera bien sûr à ce que chaque élément de premier niveau (titre de rubrique) soit un lien fonctionnel qui mène vers une page présentant la rubrique et donnant accès à ses contenus. Idéalement ces pages d'index de rubrique devraient être rédigées et designées spécifiquement, et pas créées à la va-vite. Enfin je recommande, pour des sites d'information ayant moins d'une cinquantaine de pages, d'éviter les menus déroulants et d'utiliser un menu simple sur un seul niveau; ce qui force en général (et ce n'est pas un mal) à bien concevoir l'architecture du site, la manière dont on va communiquer clairement et succinctement.

Plus de communication, plus d'ergonomie, moins de technique. Smiley smile
Aurais-tu un exemple en ligne ?

Cedric49 a écrit :
Bonjour,

Dans le cadre de la mise en place (bénévole) d'un site pour une association, je cherche à réaliser un menu horizontal à déroulement vertical à trois niveaux.

Ma question porte sur l'apparition du dernier niveau des catégories : il reste absent lors du survol. Comment le faire apparaître ? Je dois avouer que je suis un peu perdu dans les propriétés css.




Tout ce passe correctement...pour le premier déroulement.. Pas pour le dernier ! Smiley decu

Je vous serai donc reconnaissant pour votre aide et vos critiques éventuelles. Smiley smile

Merci
Administrateur
Benjamin D.C. a écrit :

Un peu HS mais je ne peux m'empêcher de signaler qu'il s'agit là d'une grosse erreur de construction et d'ergonomie…
J'aurais bien dit la même chose (et c'est de la "prétérition", j'essaie de retenir des nouveaux mots en ce moment)
Tout d'abord, merci pour vos réactions et vos conseils.

Et désolé si le topic n'est pas exactement à sa place.

En résumé :

je retiens qu'il faut revoir l'organisation des catégories (ergonomie) et alléger la présentation. Et suppression du troisième niveau dans tous les cas (ils tenaient au principe du menu déroulant)
Je vais donc leur transmettre cet avis à l'association.

A la base, j'avais déconseillé à un ami de solliciter un développeur s'il espérait débourser moins de 200e en vue d'un site pour une association..et je m'étais retrouvé à leur donner un coup de main (et comme vous l'avez constaté, je ne suis moins même pas un professionnel... mais plutôt spécialiste de la prétérition et autres subtilités littéraires Smiley cligne ..).

Je dois comprendre que le javascript doit être aussi mis à la corbeille ? Smiley ohwell simple confirmation ...
Modérateur
Bonjour,

Cedric49 a écrit :

Je dois comprendre que le javascript doit être aussi mis à la corbeille ? Smiley ohwell simple confirmation ...


Non, le Javascript peut s'avérer très utile et intéressant s'il est utilisé adéquatement. Pourquoi dis-tu qu'il faut le mettre à la corbeille?
Comme aucun intervenant ne l'évoquait en particulier, je pensais que lui aussi ne marchait pas.. simple déduction que je retire.

Et comme je "bricole" plus que je maîtrise le sujet, je serais bien en peine de dire si ce javascript peut être utile sous cette forme ou non !
Cedric49 a écrit :
A la base, j'avais déconseillé à un ami de solliciter un développeur s'il espérait débourser moins de 200e en vue d'un site pour une association.

Je comprends la préoccupation, si l'association n'a vraiment pas de budget.
Par contre, il faut bien comprendre qu'un site efficace demandera au moins plusieurs journées de travail rigoureux sur les contenus. Et si la réalisation technique est faite par un bénévole, aussi des journées entières de réalisation technique (mettons dix jours pleins pour un résultat moyen, avec un design pas trop difficile à intégrer, s'il faut en grande partie se former sur le tas). Ne pas perdre de vue ces ordres de grandeur et l'investissement en temps que ça représente. Smiley cligne

Pour le JavaScript, rien n'empêche d'en utiliser. J'aime assez le plugin Superfish pour jQuery, qui gère notamment la navigation au clavier (ça implique de charger la librairie jQuery par contre, c'est peut-être excessif juste pour un menu déroulant).
Modifié par Florent V. (16 Nov 2010 - 14:34)
Je transmets la remarque !

C'est effectivement une question plus générique qui se pose entre d'une part la finalité d'un site (ergonomie, fréquentation, participants, objectifs... d'où dépendent sa structure et son desgin), l'investissement initial et la maintenance/gestion courante du site.

En tout cas, merci des conseils