Псевдоэлементы CSS
Псевдоэлементы позволяют задать стиль для части элемента (например, для первой буквы или первой строки абзаца), а также генерировать содержимое, которого нет в HTML-коде документа.
Псевдоэлемент состоит из двух двоеточий ( :: ) и имени. Двойное двоеточие было введено в CSS3 для того, чтобы отделить псевдоэлементы от псевдоклассов. Однако для совместимости с прежними таблицами стилей допускается использовать одинарное двоеточие( : ).
| ::first-line | первая строка текстового блока. |
Пример
<style type="text/css">
p::first-line {
font-weight: bold;
}
</style>
<p>
При редактировании CSS-файла возникает противоречивая задача. С одной стороны код должен быть удобным для восприятия и редактирования, быстрого отыскания нужного селектора, для чего активно применяются отбивки, комментарии, пробелы и символы табуляции. С другой стороны, объем кода должен быть компактным и не содержать в себе ничего лишнего. Компактность позволяет несколько ускорить загрузку сайта и повысить его производительность.
</p>
<p>
Данное противоречие решается наличием двух версий CSS-файла: один для редактирования, а второй для загрузки на сервер. Сам же процесс сокращения кода называется минимизацией и вполне автоматизирован с помощью специализированных программ или сетевых сервисов. Но если приходится часто вносить изменения в CSS-файл, то процесс минимизации становится неудобным. Сами посудите, вначале надо отредактировать файл, затем его минимизировать и полученный код сохранить в файл, который нужно залить на сервер. Слишком много действий приходится совершать ради одного изменения. Логичнее было бы возложить задачу минимизации на сайт. Загрузили файл на сервер, и вот он уже в компактном виде отдается посетителям. Одно из таких универсальных решений называется minify, это библиотека на PHP5. Она минимизирует, объединяет и кэширует CSS-файлы, а также JavaScript.
</p>
РЕЗУЛЬТАТ:
При редактировании CSS-файла возникает противоречивая задача. С одной стороны код должен быть удобным для восприятия и редактирования, быстрого отыскания нужного селектора, для чего активно применяются отбивки, комментарии, пробелы и символы табуляции. С другой стороны, объем кода должен быть компактным и не содержать в себе ничего лишнего. Компактность позволяет несколько ускорить загрузку сайта и повысить его производительность.
Данное противоречие решается наличием двух версий CSS-файла: один для редактирования, а второй для загрузки на сервер. Сам же процесс сокращения кода называется минимизацией и вполне автоматизирован с помощью специализированных программ или сетевых сервисов. Но если приходится часто вносить изменения в CSS-файл, то процесс минимизации становится неудобным. Сами посудите, вначале надо отредактировать файл, затем его минимизировать и полученный код сохранить в файл, который нужно залить на сервер. Слишком много действий приходится совершать ради одного изменения. Логичнее было бы возложить задачу минимизации на сайт. Загрузили файл на сервер, и вот он уже в компактном виде отдается посетителям. Одно из таких универсальных решений называется minify, это библиотека на PHP5. Она минимизирует, объединяет и кэширует CSS-файлы, а также JavaScript.
| ::first-letter | первая буква текстового блока. |
Пример
<style type="text/css">
p::first-letter {
font: italic 40px Georgia, serif;
}
</style>
<p>
За горами, за лесами,<br>
За широкими морями,<br>
Не на небе – на земле<br>
Жил старик в одном селе...
</p>
РЕЗУЛЬТАТ:
За горами, за лесами,
За широкими морями,
Не на небе – на земле
Жил старик в одном селе...
| ::before | генерируемое содержимое, расположенное до содержимого элемента; |
| ::after | генерируемое содержимое, расположенное после содержимого элемента. |
Псевдоэлементы ::before и ::after используются вместе со свойством content и наследуют стиль от элемента, к которому добавляются.
При добавлении ::before или ::after к блочному элементу их свойство display может принимать значения block, inline, none, list-item. Все остальные будут восприниматься как block.
При добавлении ::before или ::after к строчному элементу их свойство display может принимать значения inline и none. Все остальные будут восприниматься как inline.
Пример
<style type="text/css">
li {
list-style: none;
}
li::before {
content: "\25BA";
padding-right: 5px;
}
</style>
<ul>
<li>α – альфа</li>
<li>β – бета</li>
<li>γ – гамма</li>
</ul>
РЕЗУЛЬТАТ:
- α – альфа
- β – бета
- γ – гамма
| ::selection | текст, выделенный пользователем. |
К выделенному тексту можно применять свойства color, background и background-color.
Пример
<style type="text/css">
p::selection {
background-color: #ff0;
}
p::-moz-selection {
background-color: #ff0;
}
</style>
<p>Выделите левой кнопкой мыши текст этого абзаца, и он будет на желтом фоне.</p>
РЕЗУЛЬТАТ:
Выделите левой кнопкой мыши текст этого абзаца, и он будет на желтом фоне.
Смотрите также:
.
Прокомментировать/Отблагодарить