Фавиконки рядом со ссылками


Фавиконки рядом со ссылками

7937
7.4 из 10
Проголосовало: 9






При оформлении страниц сайта очень интересным свойством может быть автоматическая вставка фавиконки рядом со ссылкой на другие ресурсы. К сожалению, только средствами CSS сделать универсальное решение не получится, но немного jQuery помогут добиться замечательного результата.

Решение для одной ссылки

Если таким образом хочется оформлять ссылки только на один ресурс, то вполне можно обойтись только CSS. A разметке формируем ссылку:

Code
<a href=http://webo4ka.ru>webo4ka</a>


А в CSS формируем для нее внешний вид:

Code
a[href*="webo4ka.ru"]{
  padding-left:18px;
  background:url(http://www.google.com/s2/u/0/favicons?domain=anysite.com) left center no-repeat;
}


Здесь используется сервис Google для фавиконок.

Универсальное решение

В выше приведенном варианте использовался сервис для получения фавиконок от Google. Ему нужно только доменное имя верхнего уровня:

http://www.google.com/s2/u/0/favicons?domain=anysite.com

Для вытаскивания URL доменного имени можно использовать регулярное выражение:

Code
function getDomain(url) {
  return url.match(/:\/\/(.[^/]+)/)[1];
}


А с помощью данной функции и jQuery формируется фоновое изображение с фавиконой:

Code
$("a[href^='http']").each(function() {
  $(this).css({
  background: "url(http://www.google.com/s2/u/0/favicons?domain=" + getDomain(this.href) +
  ") left center no-repeat",
  "padding-left": "18px"
  });
});


Можно также воспользоваться this.hostname вместо регулярного выражения. Но гарантированной поддержки данного варианта нет.

Code
$("a[href^='http']").each(function() {
  $(this).css({
  background: "url(http://www.google.com/s2/u/0/favicons?domain=" + this.hostname +
  ") left center no-repeat",
  "padding-left": "18px"
  });
});


Используем getFavicon

Есть еще один сервис - getFavicon. Как показала практика, он чуть-чуть медленнее. Но у него есть преимущество - можно использовать полный URL без выделения доменного имени.

Code
$("a[href^='http']").each(function() {
  $(this).css({
  background: "url(http://g.etfv.co/" + this.href + ") left center no-repeat",
  "padding-left": "20px"
  });
});


Заключение

При реализации данного свойства на сайте нужно помнить о вопросе производительности. Каждое маленькое изображение потребует отдельного запроса.

У Яндекса есть сервис, который формирует спрайт из фавиконок, например:

http://favicon.yandex.net/favicon/google.com/yandex.ru/anysite.com
Автор публикации: Загрузка
Загрузка
Вовчик, это его n материал
Источник: http://css-tricks.com/favicons-next-to-external-links/
  • Всего комментариев: 1

iFrendly
0
iFrendly написал: Написано 13 Декабря 2012 в 11:48
Комментарий №1
То что искал!

  • Оставить комментарий:
Добавлять комментарии могут только зарегистрированные пользователи.
Регистрация | Вход
Меню сайта
Категории
Для помощи создания сайта uCoz 25
Скрипты и модификации для Ucoz 2113
Шаблоны форумов Ucoz 28
Шаблоны сайтов Ucoz 431
Авторство Webo4ki 309
php скрипты для ucoz 57
Графика для uCoz 40
Мини-чат
Последние комментарии
Ох. Вижу, что обсуждение очень старое. Но!
На других CMS так же будет все это реализовано. На нормальных CMS.
Такое решение может подойти лишь для landing сайтов. Но и то, не думаю, что там кто то заморачивается в написании какого либо контроллера генерирования шаблона и используют прямо в лоб чистый HTML, поэтому и будут для каждой страницы свои блоки делать.

Поэтому лучше тут все же дописать решение именно для ucoz без загрузки этих лишних блоков на странице. Ведь используя условные операторы этот код даже не будет прогружаться на странице. (Лол. Это ж доли секунд загрузки...) И что? Но давайте делать оптимальнее
Моё авторство:)
  • 1488 написал:
  • 1488 написал:
  • Смысл исходный код? он возвращает после обновление страницы на то положение которое было... или как?
  • 1488 написал:
  • как поставить галки как скрине?
    а то невозможно поставить...
  • Handyman написал:
  • Не появляется код безопасности для обычных пользователей
    Последние темы
    Опрос
    432
    А
    Р
    Оцените новый дизай:)
    Статистика
    Анализ интернет сайта
    0
    онлайн
    0
    наших
    0
    чужих
    Онлайн всего: 8
    Гостей: 7
    Пользователей: 1
    0
    Сегодня были
    Топ пользователей: