Стиль CSS для ссылок, указывающих на текущую страницу? - PullRequest
6 голосов
/ 25 января 2012

Мне было интересно, есть ли какой-нибудь способ в CSS3 стилизовать ссылки, указывающие на ту же страницу, которые уже отображаются в браузере - например, выделить ее красным в навигации, говоря пользователю: «Вы здесь, прямо сейчас!»поскольку у меня есть несколько списков со ссылками, и я ожидаю, что некоторые пользователи, вероятно, будут читать их по одному.

Так что, если браузер имеет /features/feature3.php, тогда, очевидно, я бы хотел изменить внешний вид всех ссылок с тем же href назначением.

Кажется, что есть только :hover, :focus и :active, но ничего не решает эту проблему исключительно в CSS.Я что-то упустил?

Ответы [ 3 ]

5 голосов
/ 25 января 2012

для этого можно использовать селекторы атрибутов CSS3.

a[href='your url'] { *** }
0 голосов
/ 13 января 2014

Так что CSS в настоящее время не поддерживает эту функцию напрямую.Таким образом, вам нужно искать альтернативы и взвешивать компромиссы.

Используйте JavaScript и jQuery для добавления класса

$(function () {
  $('a[href="' + document.location.pathname + '"]').addClass("current");
});

Затем вы можете основывать свои стили на селекторе .current.

a.current {background-color: white;}

Просто не помещайте class="current" в ваш HTML - пусть все они будут нормальными, когда страница загружается, и javascript добавит класс к нужным элементам.Это хорошо, потому что он будет работать для любой страницы и не требует динамического кода на сервере.Конечно, это можно сделать и без jQuery.Это может потребовать корректировки параметров строки запроса, абсолютных URL-адресов и некоторых других крайних случаев, но отлично работает для простого случая.

Используйте динамический код на стороне сервера, чтобы поместить class = "current" в правильныйelements

Вы также можете сделать это таким же образом, но он не будет таким кратким и выразительным, как версия JavaScript, потому что в большинстве сред программирования на стороне сервера нет доступных хороших селекторов DOM.

0 голосов
/ 25 января 2012

Попробуйте для этого Пример , достаточно полезно.

<ul id="navlist">
   <li><a href="index.html" id="homenav">Home</a></li>
   <li><a href="products.html" id="prodnav">Products</a></li>
   <li><a href="faq.html" id="faqnav">FAQ</a></li>
   <li><a href="contact.html" id="connav">contact us</a></li>
</ul>

<body id="home">

body#home a#homenav,
body#products a#prodnav,
body#faq a#faqnav,
body#contact a#connav {
   color: #fff;
   background: #930;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...