Comment mettre en Évidence des actifs menu en css
J'ai un menu en haut qui ressemble comme ci-dessous:
Mais lorsque je sélectionne la maison ou de tout autre élément que je veux qu'il soit mis en évidence. C'est quand il est actif, je veux qu'il ait juste une couleur différente que les autres.
Mon menu css est comme ci-dessous:
#cssmenu_top{ height:37px; display:block; padding:0; margin: 0; border:1px solid; border-radius:5px; }
#cssmenu_top > ul {list-style:inside none; padding:0; margin:0;}
#cssmenu_top > ul > li {list-style:inside none; padding:0; margin:0; float:left; display:block; position:relative;}
#cssmenu_top > ul > li > a{ outline:none; display:block; position:relative; padding:12px 20px; font:bold 13px/100% Arial, Helvetica, sans-serif; text-align:center; text-decoration:none; text-shadow:1px 1px 0 rgba(0,0,0, 0.4); }
#cssmenu_top > ul > li:first-child > a{border-radius:5px 0 0 5px;}
#cssmenu_top > ul > li > a:after{ content:''; position:absolute; border-right:1px solid; top:-1px; bottom:-1px; right:-2px; z-index:99; }
#cssmenu_top ul li.has-sub:hover > a:after{top:0; bottom:0;}
#cssmenu_top > ul > li.has-sub > a:before{ content:''; position:absolute; top:18px; right:6px; border:5px solid transparent; border-top:5px solid #fff; }
#cssmenu_top > ul > li.has-sub:hover > a:before{top:19px;}
#cssmenu_top ul li.has-sub:hover > a{ background:#3f3f3f; border-color:#3f3f3f; padding-bottom:13px; padding-top:13px; top:-1px; z-index:999; }
#cssmenu_top ul li.has-sub:hover > ul, #cssmenu_top ul li.has-sub:hover > div{display:block;}
#cssmenu_top ul li.has-sub > a:hover{background:#3f3f3f; border-color:#3f3f3f;}
#cssmenu_top ul li > ul, #cssmenu_top ul li > div{ display:none; width:auto; position:absolute; top:38px; padding:10px 0; background:#3f3f3f; border-radius:0 0 5px 5px; z-index:999; }
#cssmenu_top ul li > ul{width:200px;}
#cssmenu_top ul li > ul li{display:block; list-style:inside none; padding:0; margin:0; position:relative;}
#cssmenu_top ul li > ul li a{ outline:none; display:block; position:relative; margin:0; padding:8px 20px; font:10pt Arial, Helvetica, sans-serif; color:#fff; text-decoration:none; text-shadow:1px 1px 0 rgba(0,0,0, 0.5); }
#cssmenu_top, #cssmenu_top > ul > li > ul > li a:hover{ background:#333333; background:-moz-linear-gradient(top, #333333 0%, #222222 100%); background:-webkit-gradient(linear, left top, left bottom, color-stop(0%,#333333), color-stop(100%,#222222)); background:-webkit-linear-gradient(top, #333333 0%,#222222 100%); background:-o-linear-gradient(top, #333333 0%,#222222 100%); background:-ms-linear-gradient(top, #333333 0%,#222222 100%); background:linear-gradient(top, #333333 0%,#222222 100%); filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#333333', endColorstr='#222222',GradientType=0 ); }
#cssmenu_top{border-color:#000;}
#cssmenu_top > ul > li > a{border-right:1px solid #000; color:#fff;}
#cssmenu_top > ul > li > a:after{border-color:#444;}
#cssmenu_top > ul > li > a:hover{background:#111;}
Et la façon dont je suis en train de montrer menu sur ma page est comme ci-dessous:
<div id="cssmenu_top">
<ul>
<li ><a href="index.php"><span style="text-color:#FF0000;">Home</span></a></li>
<li class='has-sub'><a href="#"><span>Add New Question</span></a>
<ul>
<li><a href="add_question.php?sub=bangla">Bangla</a></li>
<li><a href="add_question.php?sub=english">English</a></li>
<li><a href="add_question.php?sub=math">Math</a></li>
<li><a href="add_question.php?sub=generalscience">General Science</a></li>
<li><a href="add_question.php?sub=bangladeshaffairs">Bangladesh Affairs</a></li>
<li class='last'><a href="add_question.php?sub=internationalaffairs">International Affairs</a>
</li>
</ul>
</li>
</ul>
</div>
Donc pour la mise en évidence(actif) j'ai essayé d'ajouter le code suivant dans mon css:
#cssmenu_top ul > li.active{
background-color: #FF0000;
}
Mais il ne donne pas la sortie que je veux.
Comment puis-je le faire. De l'aide s'il vous plaît.
- Votre css avec
.active
est un nom de classe qui doit être appliquée à lali
pour qu'il déclenche. Donc, vous n'obtiendrez pas les résultats que vous souhaitez grâce à l'aide d'un.active
sauf si vous utilisez javascript pour définir uneactive
classe à lali
lors d'un événement de clic. - ...et, si votre page n'est une publication complète, vous allez perdre cette classe. Si vous voulez qu'elle persiste, vous devrez stocker et de récupérer et de réinitialisation de l'attribut de classe.
InformationsquelleAutor user2958359 | 2013-12-15
Vous devez vous connecter pour publier un commentaire.
Si vous voulez le état actif, vous devez utiliser li:active
un moyen de le faire avec du css est si chaque corps de la page a une unique classe/id
par exemple, si votre sur votre page d'accueil et la page d'accueil a somehting comme ce
Vous pouvez alors faire ceci pour rendre la page d'accueil de l'élément de menu rester highighted
Vous aussi, vous avez besoin de donner à chaque élément de menu sa propre id ou une classe comme .home_li pour que cela fonctionne
Puis vous faites la même chose pour les autres pages avec différentes classes/id
essayer:
Veuillez Essayer Ceci:
Et CSS:
@import url(http://fonts.googleapis.com/css?family=Raleway);