CSS Active le lien ne fonctionne pas
Donc, j'ai une barre de navigation. Construit à l'aide de Zurb:
<div class="seven columns navigation" id="navigation">
<a href="#">Page1</a>
<a href="#">Page2</a>
<a href="#">Page3</a>
<a href="#">Page4</a>
<a href="#">Page5</a>
</div>
Sur placez le pointeur de la navigation change la couleur d'arrière-plan. C'est simple. Cependant, je ne peux pas obtenir le fond de séjour si le lien est actif. Donc, si votre sur la page 1 il reste avec un fond bleu.
Voici le CSS que j'ai essayé jusqu'à présent.
.navigation a {
font-size: 1.2em;
display: inline-block;
margin-top: 20px;
padding: 8px 12px;
color: #666666;
font-weight: bold; }
.navigation a:hover{
background: #29abe2;
color: #fff;
border-radius: 5px; }
.navigation a.active{
background: #29abe2;
color: #fff;
border-radius: 5px; }
#navigation a .active-link{
background: #29abe2;
color: #fff;
border-radius: 5px; }
Non cela fonctionne, j'ai googlé cette charge, mais tout est dit actif-lien devrait fonctionner?
Quelqu'un peut me dire où je vais mal? Désolé si sa simple CSS n'est pas ma langue la plus forte.
EDIT:
Merci pour les suggestions, cependant
.navigation a:active{
background: #29abe2;
color: #fff;
border-radius: 5px; }
ne fonctionne pas non plus.
- Il serait utile si l'actif styles diffèrent en vol stationnaire styles. De cette façon vous en fait voir de travail.
- Votre site web, sauf s'il a un langage côté serveur n'a pas de comprendre de quelle page il est et ne peut pas aller " eh Bien, je suis à la page 7 donc je vais faire Page7.html lien actif.]
- Utilisation de la classe des noms comme".active " va vous causer des maux de tête.
a
élément pseudos sont::link, :hover, :visited, :active, :focus
Vous devez vous connecter pour publier un commentaire.
J'ai vu qu'il y a une erreur ici, comme il se doit
:active
et pas.active
, pour le remplacer:Avec:
D'autre, si on vous en parle chaque page ayant un état actif, alors que le CSS que vous avez écrit est correct. Dans votre code HTML, vous devez ajouter ceci:
Maintenant, ce lien sera affiché dans l'état actif. Il doit être fait pour chaque page, si vous êtes à l'aide de HTML, ou il peut être fait en utilisant la programmation si vous utilisez quelque chose comme PHP. Donc, la même chose en PHP serait:
:focus
pas:active
:active
état alors? Je suis prêt à corriger et mettre à jour ma réponse. 🙂:active
=mousedown
(simplement). Ne pas appliquer les CSS pour vos liens, et que la plupart des navigateurs flash le texte en rouge pour les actifs, violet pour les plus visitées, et bleu pour le lien.:focus
vous donnera le contour en pointillé.:active
devrait être.active
, c'est que vous étaient apparemment pas au courant de la pseudo:active
, et l'OP est à l'aide de mal choisi des noms de classe..active
est valide...mais c'est un shats nom pour une classe en particulier shats pour une classe prévue pour<a>
éléments. J'ai enlevé mon bas de vote. mais je pense que l'OP est de mettre le quickie de bugs, et ne va pas choisi mieux nomenclatures aller de l'avant.a.current-url, a.current, or a.viewing
.current
est celui que j'utilise... 🙂À résoudre qu'avec un peu de CSS astuces, vous aurez besoin d'utiliser le Sélecteur de Cible, tout d'abord vous attribut id différent pour les pages et les mettre le lien vers cette référence, puis vous modifiez le style de base sur l'ID qui est la cible.
Ici est la JS Fiddle de la Solution avec juste le CSS et le HTML
Mais, essentiellement, il fonctionne comme ceci:
Voici votre code HTML avec l'id et la cible change
Et après tout ce que css dont vous avez besoin pour changer de style en fonction de la cible comme suit:
Cela fonctionne, mais l'habitude est d'utiliser un serveur de côté, tels que ruby on rails, python, php, quelle que soit la langue que vous sentiez confortable qui permettra de fournir l'adresse url exacte et que l'utilisation d'un simple jQuery .addClass() ou .removeClass() ou même .toggleClass() à mettre à l'actif de la classe sur le bon lien.
Espère Que Cela Aide!
Cheers
:target
css-sélecteur pour activer un style plutôt que l'utilisation de javascript pour modifier le dom.a:visited
est en fait votre".active de l'état. Pour l'effet qui a été à l'origine vous demander ce qui se passait.Vous devez l'inclure dans votre
a:
pseudo classes si vous allez essayer et de l'utiliser de cette façon.L'établissement d'un "défaut/reset" de l'état de votre
<a>
éléments permettra d'éviter ce type de "WTF?" scénarios:Lorsque vous souhaitez mettre un lien particulier pour montrer "mis en évidence" sur sa page correspondante, vous êtes mieux d'utiliser un ID ou une Classe (selon votre utilisation):
MODIFIER
Relisez votre question à nouveau.
#navigation a .active-link{...
ne fonctionne pas pour vous à cause de l'espace entrea
et.active-link
. Vous êtes en train de cibler un enfant dea
avec le nom de la classe deactive-link
. Fix #1 seraita.active-link
.Abstraction de ce que vous êtes en train de lire ci-dessus à propos de PHP, Cibleur, etc. Il semble que vous êtes juste essayer de faire de votre navigation 'évidence'/changer pour juste la page correspondant au lien de la valeur liquidative. Vous pouvez facilement le faire avec directement en HTML/CSS (si vous avez des problèmes avec cela, le code côté serveur solutions viens de vous frustrer plus). Voir les trois
<a>
les éléments de ma réponse. Puis ajouter ceci dans votre CSS (Corrigé n ° 2):Je crois que votre snafu est un produit de l'utilisation des noms de classe qui sont trop près de "réservés" dans les noms de CSS (si vous avez manqué une.actifs vs a:active, même si les deux SONT VALIDES, ils sont faciles à manquer, lorsque vous êtes à la relecture du code). (Fix #3)
Vous ne pouvez pas vraiment faire ce que vous voulez faire avec pur CSS. Tout d'abord, vous devez définir la classe à utiliser pour un lien lorsque l'utilisateur est sur la page (comme vous l'avez fait, mais vous avez une faute de frappe):
Ensuite, vous devez appliquer cette classe pour le lien lorsque l'utilisateur visite la page. Donc, si je suis sur la Page 1, la navigation devrait ressembler à ceci:
a .active-link
cible d'un enfant de<a>
avec une classe deactive-link
?Mieux à l'utilisation de jQuery pour la compatibilité de navigateur
Vous aurez besoin de créer une classe active et affectez-les liens dans la barre de navigation manuellement.
HTML + CSS n'ont pas la compréhension de l'endroit où ils sont et ne peut pas aller
De sorte que vous devez soit utiliser javascript ou quelque langage de programmation comme python, php, asp, etc... pour attribuer une classe à la liaison correcte lorsque vous êtes sur la page de l'e.g Construire la navigation de manière dynamique à l'aide d'un langage côté serveur.
Essayer de le remplacer .navigation avec le n ° de navigation, il n'y a id="navigation",et non pas une classe.
Dans d'autres nouvelles,
:action
est également annulé si vous avezevent.preventDefault()
sur mousedown événement.Cela ne s'applique pas à cliquez sur et mouseup événements, vous pouvez utiliser preventDefault (), sans annulation :l'action de comportement. Je n'ai pas testé les événements tactiles, mais je suppose que ça sera le même cas.
J'ai eu le même problème, mais je l'ai résolu de la façon suivante, mais certaines choses sont étranges:
La app.component.html fichier:
La app.composante.css fichier:
Choses bizarres:
Pour couleur du lien actif, "un.active" œuvres, alors que "a:active" ne PAS travail;
Pour hover couleur, "a:hover" œuvres, alors que "un.hover" ne PAS travail.
Pour visité la couleur du lien, si j'utilise "a:visited", d'autres couleurs seront désactivé.
Il y a d'autres cas encore, mais ce serait trop parler dans les détails.
Il m'a fallu du temps pour comprendre.
Par la voie, routerLinkActive="active" est nécessaire. Je me suis débarrassé de lui juste pour le tester, et ça ne fonctionne pas. Donc je l'ai mis en arrière, et puis il a bien fonctionné.