28172 sujets

CSS et mise en forme, CSS3

Bonjour à tous !

J'ai créé un menu sous Wordpress 3.5.2 et j'utilise le thème "Canyon".
Je me heurte à deux problèmes :

1) dans mon sous-menu (niveau 2), il n'y a pas de redimensionnement automatique du bloc en fonction de la taille du texte et le texte est donc coupé. J'ai vu que dans le css, un "width" est défini ; seul problème, si je l'augmente, il sera donc appliqué à tous les sous menus donc la zone sera beaucoup trop grande pour des textes courts.

En images : ici le "projet de développement de la Ligue" est coupé :

upload/46213-Capturedec.png

J'ai essayé de mettre un width : 100% mais tous les éléments se mettent les uns à la suite des autres.

Voici le code CSS correspondant au menu :

#botmenu {
    height: 30px;
    margin: 0px auto;
    background: url(images/menubg.png) repeat-x;
}
	
#submenu {
    margin: 1px auto;
    width: 100%;
    height: 30px;
    padding: 0px 14px;
}
	
#submenu ul {
    width: 100%;
    float: left;
    list-style: none;
    margin: 0;
    padding: 0 0px;
}
	
#submenu li {
    float: left;
    list-style: none;
    margin: 0px 1px 0px 0px;
    padding: 0px;
    color: #656565;
	font-size: 13px;
	font-family: Helvetica,Tahoma,Century gothic,sans-serif;
	font-weight: 600;
	text-transform:uppercase;
	height: 30px;
	cursor: default;
}

#submenu li span.menudescription{
	display:block;
	font-size:10px;
	line-height:14px;
	color:#fff;
	font-family:Arial, verdana, Tahoma, Sans-serif;
}	

#submenu li a {
	color: #2C517F;
	display: block;
    margin: 0;
	padding: 7px 15px 5px 0px;
	text-decoration: none;
	position: relative;
	}
	
#submenu li a:hover, #submenu li a:active {
	color: #656565;
	}
	
.testtest { color:red; }

#submenu li a.sf-with-ul {
	padding-right: 10px;
	}	
	
#submenu li .sf-sub-indicator{
	display:none;
}	

#submenu li ul {
	z-index: 9999;
	position: absolute;
	left: -999em;
	width: 160px;
	margin: 5px 0px 0px 0px;
	padding: 5px 5px;
	background: rgba(42, 82, 124, .9);
	border: 1px solid white; 
	}
	
#submenu li ul li:hover {
	background: rgba(0, 0, 0, .5);
	}	

#submenu li ul li a, #submenu li ul li a:link, #submenu li ul li a:visited {
	color: #ddd;
	text-shadow:1px 1px 0px #890519;
	font-size:11px;
	text-shadow:none;
	width: 150px; 
	margin: 0;
	padding: 0px 5px;
	line-height:35px;
	height:35px;
	text-transform: none;
	position: relative;
	}

#submenu li ul li a:hover, #submenu li ul li a:active {
	background:transparent;
	color: white; 
	}
	
ul.sub-menu li a{
	//border-bottom:1px solid #04515B;
}

#submenu li ul a { 
	width: 150px;
	}

#submenu li ul a:hover, #submenu li ul a:active { 
	color: #fff;
	}

#submenu li ul ul {
	margin: -41px 0 0 165px;

	}

#submenu li:hover ul ul, #submenu li:hover ul ul ul, #submenu li.sfHover ul ul, #submenu li.sfHover ul ul ul {
	left: -999em;
	}

#submenu li:hover ul, #submenu li li:hover ul, #submenu li li li:hover ul, #submenu li.sfHover ul, #submenu li li.sfHover ul, #submenu li li li.sfHover ul {
	left: auto;
	}

#submenu li:hover, #submenu li.sfHover { 
	position: static;
	}



2) Comme vous le voyez sur l'image ci-dessus, j'ai mis une petite flèche peu esthétique sur l'élément "structure" du sous-menu que j'ai ajoutée à la main dans le titre du menu, parce qu'il y a un menu de niveau 3 ensuite.

J'ai eu beau chercher, je n'ai pas trouvé comment faire en sorte qu'une flèche apparaisse (sur le coté droit) de manière automatique dès lors qu'il y a un menu de niveau 3. En gros, que ça fasse comme ça :

upload/46213-menuavecfl.png

J'imagine que c'est du php ? J'ai essayé d'utiliser la fonctionnalité wordpress "Classes CSS (facultatives)" pour le faire à la main mais ça ne fonctionne pas (aucune classe n'est associé au titre en question).

Voila voila, je bloque ! Merci d'avance si vous avez des idées Smiley smile
Salut,

a écrit :
1) dans mon sous-menu (niveau 2), il n'y a pas de redimensionnement automatique du bloc en fonction de la taille du texte et le texte est donc coupé. J'ai vu que dans le css, un "width" est défini ; seul problème, si je l'augmente, il sera donc appliqué à tous les sous menus donc la zone sera beaucoup trop grande pour des textes courts.
Si tu ne souhaites pas augmenter la width de ton sous-menu que dis-tu d'afficher le libellé sur deux lignes ? Généralement c'est plus intéressent de faire des éléments fluides (donc texte qui va à la ligne ou largeur qui s'adapte) car tu n'as 1) soit pas la main sur ton contenu (si c'est pas toi qui l'édite), 2) l'utilisateur peut très bien augmenter la tailles des polices. Je te conseil déjà d'annuler le fait qu'il n'y ai pas de redimensionnement automatique.

a écrit :

2) Comme vous le voyez sur l'image ci-dessus, j'ai mis une petite flèche peu esthétique sur l'élément "structure" du sous-menu que j'ai ajoutée à la main dans le titre du menu, parce qu'il y a un menu de niveau 3 ensuite.

J'ai eu beau chercher, je n'ai pas trouvé comment faire en sorte qu'une flèche apparaisse (sur le coté droit) de manière automatique dès lors qu'il y a un menu de niveau 3. En gros, que ça fasse comme ça :
Sans l'HTML sans ça va être dur mais ça m'étonnerai qu'il n'y ai pas une class spécifique sur les items possédant un sous-menu. Si il n'y a pas de class spécifiques effectivement il faudrait en créer une. Générée côté serveur donc en PHP (ou autre). Tu pourrais le faire en JS, mais c'est cracra, enfin je trouve Smiley smile .

En espérant t'avoir fourni une piste de recherche.
Salut et merci de ta réponse Smiley smile

1) Pourquoi pas pour le libellé mais dans le code ça donne quoi ? ^^

2) Oui je pensais le faire en PHP aussi. Mais je n'y connais rien Smiley ohwell quelqu'un pour filer un coup de main en me donnant le code ?

Merci !

EDIT : voila le code HTML du menu :

<div id="botmenu">
		<div id="submenu" class="menu-menu-principal-container"><ul id="menu-menu-principal" class="sfmenu sf-js-enabled sf-shadow"><li id="menu-item-22" class="test menu-item menu-item-type-custom menu-item-object-custom"><a class="sf-with-ul"><strong>La Ligue</strong><span class="sf-sub-indicator"> »</span></a>
<ul class="sub-menu" style="display: none; visibility: hidden;">
	<li id="menu-item-24" class="testtest menu-item menu-item-type-custom menu-item-object-custom"><a class="sf-with-ul">Structure &#8594;<span class="sf-sub-indicator"> »</span></a>
	<ul class="sub-menu" style="display: none; visibility: hidden;">
		<li id="menu-item-40" class="menu-item menu-item-type-custom menu-item-object-custom"><a href="http://#">Olé</a></li>
		<li id="menu-item-38" class="menu-item menu-item-type-custom menu-item-object-custom"><a href="http://#">Test 1</a></li>
		<li id="menu-item-16" class="test menu-item menu-item-type-post_type menu-item-object-page"><a href="http://localhost:8888/ligue/?page_id=4">Comité directeur</a></li>
	</ul>
</li>
	<li id="menu-item-39" class="menu-item menu-item-type-custom menu-item-object-custom"><a href="http://#">Test 2</a></li>
	<li id="menu-item-44" class="menu-item menu-item-type-custom menu-item-object-custom"><a href="http://#">Projet de développement de la Ligue</a></li>
</ul>
</li>
<li id="menu-item-31" class="menu-item menu-item-type-custom menu-item-object-custom"><a><strong>|</strong></a></li>
<li id="menu-item-23" class="menu-item menu-item-type-custom menu-item-object-custom"><a><strong>Les commissions</strong></a></li>
<li id="menu-item-32" class="menu-item menu-item-type-custom menu-item-object-custom"><a><strong>|</strong></a></li>
<li id="menu-item-25" class="menu-item menu-item-type-custom menu-item-object-custom"><a><strong>Championnats</strong></a></li>
<li id="menu-item-33" class="menu-item menu-item-type-custom menu-item-object-custom"><a><strong>|</strong></a></li>
<li id="menu-item-26" class="menu-item menu-item-type-custom menu-item-object-custom"><a><strong>Événements</strong></a></li>
<li id="menu-item-34" class="menu-item menu-item-type-custom menu-item-object-custom"><a><strong>|</strong></a></li>
<li id="menu-item-27" class="menu-item menu-item-type-custom menu-item-object-custom"><a><strong>Techniciens</strong></a></li>
<li id="menu-item-35" class="menu-item menu-item-type-custom menu-item-object-custom"><a><strong>|</strong></a></li>
<li id="menu-item-28" class="menu-item menu-item-type-custom menu-item-object-custom"><a class="sf-with-ul"><strong>Officiels</strong><span class="sf-sub-indicator"> »</span></a>
<ul class="sub-menu" style="display: none; visibility: hidden;">
	<li id="menu-item-41" class="menu-item menu-item-type-custom menu-item-object-custom"><a href="http://#">Test 1</a></li>
	<li id="menu-item-42" class="menu-item menu-item-type-custom menu-item-object-custom"><a href="http://#">Test 2</a></li>
	<li id="menu-item-43" class="menu-item menu-item-type-custom menu-item-object-custom"><a href="http://#">Test 3</a></li>
</ul>
</li>
<li id="menu-item-36" class="menu-item menu-item-type-custom menu-item-object-custom"><a><strong>|</strong></a></li>
<li id="menu-item-29" class="menu-item menu-item-type-custom menu-item-object-custom"><a><strong>Documentation</strong></a></li>
<li id="menu-item-37" class="menu-item menu-item-type-custom menu-item-object-custom"><a><strong>|</strong></a></li>
<li id="menu-item-30" class="menu-item menu-item-type-custom menu-item-object-custom"><a><strong>Contact</strong></a></li>
</ul></div>	</div>

Modifié par hender (08 Jul 2013 - 23:47)