Pages :
(reprise du message précédent)

OK, parfait
je vais regarder cela de plus près
merci pour tout
Bonne soirée
Bonjour,
Grrrrrr que c'est difficile
Depuis que le menu reste ouvert, je n'ai plus mes effets de changements de couleur dans le menu lorsque l'on fait un roll over dessus.

Je n'ai pourtant pas touché à mes CSS
Est ce encore une commande PHP ?
merci merci
Bonne journée
Je viens de trouver, les CSS étaient ainsi :
.navigation .subMenu a:hover a:active{ color: #333231; list-style: none; }

mais du coup comment faire pour que la sous rubrique affiche une couleur lorsque la page appelée est affichée.

merci d'avance
Le menu qui reste ouvert à la classe open_at_load. Utilise cette classe pour designer ce menu.
Mince, je ne comprends pas, j'ai mis dans les CSS
.open_at_load, a:active { color: #333231; }

faut-il faire quelque chose au niveau du PHP ? voici le code :

<?php echo affiche_discipline(); ?>
</ul>

<li class="toggleSubMenu"><span>Portfolio [par secteur]</span>
<?php if ($_GET['spec']=='secteur') {
echo '<ul class="subMenu open_at_load">'; } else
{ echo '<ul class="subMenu">';}
?>

merci encore
Non mais je pense qu'il y a une erreur dans ton css

:hover et :active sont 2 états différents.
:hover c'est le survol et :active le click

Du coup ton sélecteur est faux. Je ne comprend pas bien ce que tu veux sélectionner quand tu écris.

.navigation .subMenu a:hover a:active{ color: #333231; list-style: none; }


Si tu veux changer la couleur au survol tu écris.


.open_at_load a:hover{ color: #333231; }


Et au clic.


.open_at_load a:active{ color: #222; }


C'est toujours bien d'avoir un effet sur le clic typiquement j'ai ça dans mon code perso.


a:active{ position: relative; top: 1px; }



C'est bien aussi de prévoir 2 méthodes d'identification des liens (couleur + décoration par exemple).
Modifié par joska (13 Jan 2011 - 14:54)
Je n'arrive pas à dissocier le sous-menu 2 du sous-menu 3

et la classe sur l'open_at_load ne fonctionne pas. J'ai voulu mettre un souligné ou autre pour montrer sur quelle page on est, mais non, cela ne me fait rien. Y a t'il quelque chose à changer dans le PHP ?

Le menu est à 3 niveaux : 1 Portfolio, 2 secteur et 3 client

extrait code source :
<li class="toggleSubMenu"><span>Portfolio [par discipline]</span>
<?php if ($_GET['spec']=='specialite') {
echo '<ul class="subMenu open_at_load">'; } else
{ echo '<ul class="subMenu">';}
?>
<?php echo affiche_discipline(); ?>
</ul>

<li class="toggleSubMenu"><span>Portfolio [par secteur]</span>
<?php if ($_GET['spec']=='secteur') {
echo '<ul class="subMenu open_at_load">'; } else
{ echo '<ul class="subMenu">';}
?>

<?php echo affiche_secteur(); ?></ul>
</li>


les CSS :
.navigation { margin: 1; padding: 0; list-style: none; width: 200px; normal; font-size: 1.4em; float: left; text-decoration: none; }
.navigation a, .navigation span { display: block; padding: 4px 10px; color: #FFF; text-decoration: none; background: #a4a2a0 no-repeat left bottom; }
.navigation a:hover, .navigation a:focus, .navigation a:active { color: #FFF; list-style: none; background: #bdbbba; }

.navigation .subMenu { background: no-repeat 0 0; margin: 0; padding: 0; list-style: none; text-decoration: none; font: 0.9em Arial, Helvetica, sans-serif; color: #333231; }
.navigation ul.subMenu a { background: url(none); padding: 3px 20px 3px 20px; color: #777675; }
.navigation ul.subMenu a:hover { color: #333231; list-style: none; }

.navigation .subMenu2 { padding-left: 10px; list-style: none; font: 0.9em Arial, Helvetica, sans-serif; color: #000; }

.navigation .toggleSubMenu a, .navigation .toggleSubMenu span {list-style: none; text-decoration: none; }
.navigation .toggleSubMenu a:active { list-style: none; text-decoration: underline; }

.navigation .toggleSubMenu2 { color: #83807d; list-style: none; }
.navigation .toggleSubMenu a:active { list-style: none; text-decoration: underline; }

.open_at_load2, a:active { color: #33323; }

le php attaché au menu :
function affiche_secteur() {
connexion_DB('username modéré');
$strSQL = 'SELECT `nom` FROM `secteur` ORDER BY `nom`';
$resultat = requete_SQL($strSQL);
$menu_retour = '';
$rubrique=$_GET['rubrique'];
while ($tabl_result = mysql_fetch_array($resultat)) {
$res=Affiche_menu($tabl_result['nom'],"secteur");
if ($res!='') {
if ($tabl_result['nom']==$rubrique) {
$menu_retour .= '<li class="toggleSubMenu2"><span>'.$tabl_result['nom'].'</span>
<ul class="subMenu2 open_at_load">';
} else {
$menu_retour .= '<li class="toggleSubMenu2"><span>'.$tabl_result['nom'].'</span>
<ul class="subMenu2">';
}
$menu_retour .= $res;
$menu_retour .= '</ul> </li>';
}
}
return $menu_retour;
}

merciiiiii pour votre patience
Bonsoir

1 - Il y a peut etre une erreur dans le css

.open_at_load2, a:active { color: #33323; }

Si tu cherches à cibler les liens de la liste il faut que tu retires la virgule.

.open_at_load2 a:active { color: #33323; }

De plus en utilisant la pseudo-classe :active tu ne cibles que le lien quand il est cliqué.
Je ne pense pas que ça soit l'effet désiré.

2 - il faut que tu caches les sous menu de la classe 'open_at_load" dans le script
Quelque chose comme.

$(".navigation ul.subMenu:not('.open_at_load'), .navigation ul.open_at_load ul").hide();
// On selectionne tous les items de liste portant la classe "toggleSubMenu"
Bonjour khyriana,

Tout ça m'a l'air bien laborieux. Engager les services d'un intégrateur web (HTML, CSS, JavaScript) ou d'un développeur web polyvalent (mêmes technos + PHP) n'était pas possible?

J'ai un peu l'impression que joska est en train de te tenir par la main à chaque pas ou presque. C'est très sympa de sa part mais je ne suis pas sûr que ça soit le plus productif pour toi et pour ton projet.
Bonjour,
oui, c'est laborieux en effet. Et je précise au passage que j'ai déja loué les sces d'une développeuse PHP, et comme le menu ne réagit toujours pas comme je le voudrais, je suis allée aux renseignements sur cet espace. La développeuse n'est pas capable apparemment de le faire. Je l'ai déja payée, car étant moi-même indépendante, je ne fais pas comme les clients, mais je reste en rade et bien ennuyée.
En tout cas merci à Joska dont je me suis déja gardé ces coordonnées.
Bonne journée
c'est vrai que j'ai aussi cette impression mais bon, j'ai tellement appris sur les forums que je renvois la balle maintenant. GL.
Modifié par joska (21 Jan 2011 - 12:57)
Sachez que j'en ai appris grâce à vous, et que rien n'a été inutile.
Merci pour votre patience.
Très bonne journée.
Pages :