Как добавить иконку к ссылке на RSS-поток
21 Dec. 2005Чтобы добавить иконку к ссылке в WordPress-е потребуется вставить всего несколько строк в CSS-файл шаблона. Ну, и саму иконку подготовить. Сразу предупрежу, что данное решение подходит только для современных браузеров, вроде Firefox и Opera. Пользователей IE 5-6, это никак не затронет, они получат обычную текстовую ссылку без картинки. Хаков не используется, так как IE, на данный момент, просто не понимает таких CSS-селекторов.
Результат можно видеть на скриншоте или в подвале любой страницы этого сайта.
Сначала нам понадобится картинка для иконки RSS-потока. Возьмем изображение, принятое в качестве стандарта де-факто, отрисованное добрыми людьми, и выложенное для всеобщего использования в форматах PSD и AI.
Слегка модифицируем картинку и получаем следующее: в одном файле два изображения разной цветовой насыщенности (для rollover-эфффекта). Файл сохраняем в формате PNG с прозрачностью, в результате чего, этот файл можно использовать на любом фоне: черном, белом, цветном, пестром — любом. Это благодаря тому, что мы сразу отказались от поддержки устаревших браузеров, не полностью поддерживающих PNG.
Загружаем картинку на сервер и начинаем писать CSS. Главное тут — правильный селектор, который гарантирует, что стилевое правило будет применено к определенной ссылке, без использования классов или id.
a[href="..."]
В селекторе, между кавычками пишем точный полный адрес нашего RSS-потока. Он же — адрес ссылки. Его можно скопировать прямо с страницы в окне браузера.
Копи-пейстить нужно внимательно — достаточно забыть конечный слеш, например, и селектор не заработает.
В моем случае получается следующее:
a[href="http://uggallery.audiopeace.ru/feed/"]
Это селектор для ссылки на RSS-поток “Статьи”. Для выделения ссылки “Комментарии” , нужно лишь заменить адрес.
Дальше все совсем просто. прописываем картинку в качестве фона ссылки, выравниваем ее по правому краю (или по левому, как больше нравится). Задаем padding, чтобы текст ссылки не перекрывал фон и картинка полностью была видна. Для этого же использовано правило line-height. Добавляем margin, который, в общем, не обязателен — зависит от дизайна страницы.
a[href="http://uggallery.audiopeace.ru/feed/"],
a[href="http://uggallery.audiopeace.ru/comments/feed/"] {
margin-right: 1px;
padding: 1px 19px 5px 0;
background: url(/wp-content/feedicon16.png) no-repeat 100% 0;
line-height: 2;
}
Ссылка готова. Еще немного кода для создания rollover-эффекта:
a:hover[href="http://uggallery.audiopeace.ru/feed/"],
a:hover[href="http://uggallery.audiopeace.ru/comments/feed/"] {
background-position: 100% -100px;
}
Вот и все.
В принципе, то же самое нетрудно реализовать для IE. Но кому он, такой устаревший, нынче нужен? :-) Я не хочу принизить пользователей IE, однако пришла пора осваивать новые технологии дизайна, а для этого нужно ориентироваться на новые браузеры. Благодаря чему, нам не понадобилась модификация кода страницы, что, в случае с WordPress, может потребовать некоторых навыков работы с PHP. А так, это решение годится для любого сайта, независимо от платформы. Элементарно просто
22 Dec. 2005 at 08:12
А я не понял, зачем нужно в один файл два изображения запихивать?..
22 Dec. 2005 at 15:12
Это позволяет избежать задержек в отображении при ролловере. Задержки возникают в разных браузерах, небольшие, но заметные. А так – все гладко.
22 Dec. 2005 at 22:12
Спасибо, а я вот еще нашел: Vectorized Version of the Standard Feed Icon.
24 Dec. 2005 at 19:12
Спасибо за tutorial :)
27 Dec. 2005 at 06:12
vsjo s IE mozhno sdelat’ i bez hakov
27 Dec. 2005 at 13:12
Сделать тоже самое для IE без хаков можно. А вот без изменения HTML-кода — нельзя (в моем случае). Нетрудно назначить этим ссылкам какой-нибудь class. Но мне интереснее не IE поддерживать, а “поиграться” с новым CSS-селектором.
В идеале, CSS-верстка должна делаться вообще без модификации HTML-а. Для того эти хитрые селекторы и придумывают.
05 Jan. 2006 at 01:01
а все! понял! я не заметил, сначала, что она меняется
19 Jan. 2006 at 00:01
А я то голову ломаю – зачем в файле две картинки!
25 Jan. 2006 at 14:01
кстати, оффтоп: при наведении на картинку всплывает подсказка “Скриншот. Ссылка на подвал страницы.” может логичнее поменять их местами?
“Ссылка на подвал страницы. Скриншот.”
25 Jan. 2006 at 14:01
Если короткую фразу поместить перед длинной, то больше шансов, что прочтут обе. И, прежде всего, это все-таки скриншот, а ссылка так — для удобства.