создание и продвижение сайта (вбиваю в ТОП-10, как гвозди)Настройка и сопровождение платной рекламы яндекс.директ

Глава 16. Псевдоэлементы

Псевдоэлементы - это особый вид свойств CSS, которые позволяют работать не над самим элементом, а над его отдельной частью.

Перечень всех псевдоэлеметов:

  • :first-letter - стиль 1-й буквы текстового блока;
  • :first-line - стиль 1-й строки текстового блока;
  • :after - добавляет содержимое после элемента;
  • :before - добавляет содержимое до элемента;
  • ::selection - стиль выделенного пользователем текста.

    Так же как и в случае с псевдоклассами, псевдоэлементы используются согласно следующего синтаксиса: p:first-letter{color:#ff0}

    где:

  • p - селектор, к которому применяется псевдоэлемент;
  • :first-letter - после двоеточия собственно псевдоэлемент *примечание;
  • {color:#ff0} - блок объявления стилей в фигурных скобках.

    В данном случае мы указали, что 1-я буква всех параграфов будет красного цвета.

    Стиль 1-й буквы

    Псевдоэлемент first-letter задаёт стиль 1-й буквы в каком либо текстовом блоке (позволяет сделать буквицу).

    <title>Псевдоэлемент first-letter</title>

    <style>

    p{font:16px Arial} p:first-letter{font:bold 24px Verdana;color:#ff0} </style>

    <p>Мало кто знает, как много надо знать для того, чтобы знать, как мало мы знаем.<p>

    <p>Осмысливая мысли, в смысле смысла, есть смысл, помыслить о немыслимом.<p>

    смотреть пример

    В примере выше изменен размер, шрифт, цвет и жирность 1-й буквы для всех параграфов на странице.

    Стиль 1-й строки

    Псевдоэлемент first-line определяет стиль 1-й строки в текстовом блоке.

    Пример:

    <title>Псевдоэлемент first-line</title>

    <style>

    body{background:#fcd}

    p{color:#005}

    p:first-line{font:16px Arial;color:#f00} </style>

    <p>Если бы при приеме на работу…

    <p>Однажды молодой сисадмин…

    смотреть пример

    Контент

    Псевдоэлементы after и before предназначены для врезки в страницу сайта контента, который изначально неуказан в HTML-документе. Вставляется содержание перед (:before) или после (:after) какого-либо элемента с помощью свойства content, которое и определяет содержимое для вставки.

    Пишется так: p:after{content:"Конец, а кто слушал молодец!"}

    Теперь после каждого параграфа будет добавляться надпись:"Конец, а кто слушал молодец!"

    Значением свойства content может быть:

  • "текст" - собственно любой текст или символы;
  • "\0410" - юникод;
  • url(путь)- адрес какого либо объекта;
  • open-quote - открывающая кавычка;
  • close-quote - закрывающая кавычка;
  • no-open-quote - отменяет открывающую кавычку;
  • no-close-quote - отменяет закрывающую кавычку;
  • inherit - наследует значение элемента родителя;
  • none - ничего не добавляется;
  • normal - для псевдоэлементов before и after то же самое, что и none;
  • counter - показывает значение счетчика, заданного свойством counter-reset;
  • attr (атрибут тега) - показывает текст, который является значением атрибута того или иного тега, указанного в скобках.

    Пример:

    <title>Псевдоэлементы after и before</title>

    <style>

    *:before{color:#00f;font-variant:small-caps}

    *:after{color:#f00;font-variant:small-caps}

    body:before{content:"начало документа"}

    body:after{content:"конец документа"}

    p:before{content:"анекдот:"}

    p:after{content:":-)";font-size:x-large}

    ul{list-style-type:none}

    li:before{content:"№ ";color:#0f0}

    h4:before{content:url(graphics/marker.gif)}

    q:before{content:open-quote;font-size:30px}

    q:after{content:close-quote;font-size:30px}

    img:after{content:attr(src)}

    </style>

    <h4>Заголовок с сердечком</h4>

    <h4>Параграфы с добавлением слова "анекдот:" вначале и смайлика в конце:</h4>

    <p>Если бы при приеме на работу.

    <p>Однажды молодой сисадмин.

    <h4>После рисунка добавляется значение его атрибута:"src" - путь к рисунку:</h4>

    <img src=graphics/fon.jpg>

    <h4>Цитата в кавычках:</h4>

    <q>Лёд тронулся, господа присяжные заседатели!</q>

    <h4>Список с нестандартными маркерами:</h4>

    <li>1-й

    <li>2-й

    <li>3-й

    </ul>

    смотреть пример

    Комментарии:

    Звездочка перед псевдоэлементом *:псевдоэлемент{свойство} говорит о том, что указанные правила стиля распространяются на все элементы. В примере текст в начале везде синий, а в конце красный, если он конечно не указывается дополнительно, как в случае с зелёными "маркерами" в списке из примера.

    В качестве добавляемого контента может вступать какой-либо объект, в примере добавлен рисунок ко всем заголовкам, однако, если браузер не сможет обработать тот или иной файл, то ничего не добавится.

    Спецсимволы HTML (например, спецсимвол &para;), будут отображаться простым текстом (&para;, а не ¶), так что, если необходимо добавить какую-либо хитрую закорючку, используйте юникод.

    Псевдоэлементы after и before, как и свойство content не поддерживаются браузерами IE7 и ниже.

    Псевдоэлемент ::selection

    Псевдоэлемент ::selection (пишется именно с 2 2-точиями) указывает на стиль выделенного пользователем текста.

    Данный псевдоэлемент появился на свет только в спецификации CSS3 и поддерживается не всеми браузерами (IE его полностью игнорирует, а браузер Firefox использует свой аналогичный псевдоэлемент ::-moz-selection, который официально не входит в спецификацию CSS).

    Пример:

    <title>Псевдоэлемент ::selection</title>

    <style>

    p::selection{color:#f00;background:#0f0} </style>

    <p>Попробуете выделить данный текст, как будто Вы собираетесь его скопировать. Если Ваш браузер (например Opera 9.6 и выше) поддерживает псевдоэлемент ::selection, Вы увидите, что выделенный текст станет красным, а его фон зелёным.

    смотреть пример

    К данному псевдоэлементу можно применить только следующие CSS свойства: color, background.

    Полезные советы:

  • В спецификации CSS3 в отличии от CSS2 и CSS2.1 все псевдоэлементы принято писать с 2 2-точиями ::first-letter, ::first-line, ::after, ::before, и новый ::selection - таким вот способом разработчики решили отделить пседоэлементы от псевдоклассов. Однако такой синтаксис напрочь игнорирует IE до 9 версии включительно! Так что, пока псевдоэлементы лучше писать по старинке с 1 2-точием. Однако следует понимать, что например :first-letter и ::first-letter это формально 2 разных псевдоэлемента.
  • В правилах стиля для псевдоэлементов допустимо использовать только свойства, относящиеся к шрифту, тексту и его фону.

    << предыдущая глава

  • Отвечу на любые вопросы. С уважением, Дмитрий Владимирович.

    Ваше письмо×
    Free Web Hosting