Главная » Статьи и переводы

Оформление внешних ссылок с помощью CSS

19 Октябрь 2008 просмотров 6 558 комментариев 19


Этот урок, наверное, многим из вас будет хорошо знаком, но вот используете ли вы его на практике? Задача состоит в том, чтобы выделить в тексте страницы внешние ссылки с помощью CSS кода, чтобы они отличались от внутренних ссылок сайта. Для этого мы будем использовать регулярное выражение, с помощью которого напишем шаблон для ссылок. В CSS это выглядит так:

a[href^="http:"] {...}

Этот код означает, что все ссылки начинающиеся с http: будут иметь стили присвоенные в данном правиле.

Теперь, чтобы отличить внешние ссылки от внутренних, пропишем правило, используя регулярное выражение включающее домен. Например:

a[href^="http://www.getincss.ru"], a[href^="http://getincss.ru"], a[href^="/"] {...}

Советую почитать:

Маленькие хитрости Google – найдем наших конкурентов в AdSense.

Пробуем арбитраж с CPA на CPA.

Простая техника для настройки MFA сайтов и для улучшения QS на лендинг страницах.


Здесь мы отметили 3 возможных варианта того, как может быть указана ссылка на внутренние страницы сайта. Соответсвенно, для всех остальных ссылок, т.е. для внешних, будет учитываться первое правило: a[href^="http:"].

Оформление внешней ссылки – уже ваша фантазия, но чаще всего можно увидеть такой стиль:

CSS код для этого примера:

a[href^="http:"]
    {
     background: url(images/externalLink.gif) no-repeat right top;
     padding-right: 10px;
    }

Картинку можно скачать по указанной ссылке. Ну и, конечно, оговорочка – для IE6 данный метод работать не будет, но если вы его будете использовать, хуже никому не станет :)

Комментариев 19 »

  • ]]>Роман Настенко пишет: ]]>

    А это CSS 2 или CSS3? Кто это поддерживает?

      Цитировать

  • ]]>Автор пишет: ]]>

    это CSS 3, что касается поддержки: среди наиболее распространенных браузеров (FF, Opera, IE, Safari) – поддерживают все кроме IE6.

      Цитировать

  • ]]>Роман Настенко пишет: ]]>

    Вообще прикольно. Спасибо, не знал :)

    Я вообще до какого-то момента на CSS 3 не смотрел, ввиду популярность ИЕ 6, но сейчас уже видимо пора :)

      Цитировать

  • ]]>Zodios пишет: ]]>

    Мне кажется, пока не будет стабильной поддержки цсс3, о таких способах можно говорить только в мелких проектах в которых не так важна идеальное соответствие в разных браузерах. Спасибо за обзор.

      Цитировать

  • ]]>Pipok пишет: ]]>

    кстати, действтительно че-то я стормозил, терь буду тоже различать на сайте внешние ссылки от внутренних :)))

      Цитировать

  • ]]>vat пишет: ]]>

    Вообще статейка занимательная. Насчет поддержки/неподдержки: может тогда еще и на 640х480 разрешение экрана будем равняться? и чтоб хорошо гляделось в монохромном телевизоре? ИМХО нужно глядеть вперед, а не держаться за старое. IE6 отживает свое – не нужно продлять ему жизнь, подстраиваясь под него.

      Цитировать

  • ]]>vvktr пишет: ]]>

    А я что то непонял, где пример рабочий? покажите пожалуйста! А то везде кусками написано!

      Цитировать

  • ]]>vvktr пишет: ]]>

    http://test.ru
    test external link, gde blin?

      Цитировать

  • ]]>Автор пишет: ]]>

    здесь это не будет работать, в моем файле стилей это не предусмотрено.
    Для того чтобы код заработал, нужно прописать стиль для ссылок, указанный мною в статье:

    a[href^="http:"] {
    background: url(externalLink.gif) no-repeat right top;
    padding-right: 10px;}

    Проверьте, просто создав страницу с таким кодом (только картинку не забудьте скачать http://www.getincss.ru/wp-content/uploads/2008/10/externallink.gif)

      Цитировать

  • ]]>Yuriy Drozdov пишет: ]]>

    Данный селектор еще в css2 был

      Цитировать

  • ]]>Dr.O пишет: ]]>

    А вы смотрели статистику по браузерам на liveinternet ?Думаю еще долго будет ie6 активно использоваться

      Цитировать

  • ]]>Автор пишет: ]]>

    Без дополнительных блоков в данном случае не обойтись, посмотрите пример для меню в этой статье ролловер меню
    Здесь фон ссылки меняется в зависимости от ширины текста. Вам просто нужно взять код, касающийся того как сделать ссылки с “резиновым” фоном, например так:

    <ul>
    <li><a href="#" rel="nofollow"><b>Ссылка 1</b></a></li>
    <li><a href="#" rel="nofollow"><b>Ссылка 2</b></a></li>
    </ul>
    
    ul li a {display:block;
    height:15px;
    padding:0 15px 0 15px;
    background:url(menu_item.gif) no-repeat left top;
    position:relative;
    }
    
    ul li a b {
    position:absolute;
    right:0; top:0;
    display: -moz-inline-stack; /* для FF<3*/
    display:inline-block;
    background:url(menu_item.gif) no-repeat right top;
    width:15px; height:15px;
    }
    

      Цитировать

  • ]]>Tane4ka пишет: ]]>

    Здравствуйте! не могли бы вы помочь мне: нужно чтобы при наведении у ссылки появлялся фон в виде картинки. Не в виде background-color, а именно в виде background: url(‘imgs/a-active.png’) no-repeat 0 0. Это свойство использую в навигации в хедере. Но вся сложность в том, что ширина этой картинки должна меняться. Н-р, для ссылки ФОТО и ссылки КАТАЛОГ ПРОДУКЦИИ, картинка то сужается, то расширяется. Как это организовать?
    заранее благодарю :-) и с нетерпением жду ответа!

      Цитировать

  • ]]>red пишет: ]]>

    хмм.. я не знал, что можно так делать. Спасибо за статью.

      Цитировать

  • ]]>vovse_ne пишет: ]]>

    Интересно, что писать, если ссылка вообще ни с чего не начинается – то бишь, она относительная, а файл лежит в той же папке (напр. abcd,html)?

    Я как раз на этом месте застопорилась… А для меня критично ссылки внешние от внутренних отделить…

      Цитировать

  • ]]>2web пишет: ]]>

    Спасибо за статью, попробую на своем сайте.

      Цитировать

Комментарии

Добавьте ваш комментарий, или трекбэк с сайта. Вы также можете подписаться на комментарии к этой статье через RSS.

Вы можете использовать теги:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Чтобы получить аватарку, зарегистрируйтесь на Gravatar.