Иногда требуется встроить какие-нибудь символы в хтмл-код, типа черточек, палочек, стрелочек и пр. Все бы было хорошо, прямо в верстку вставляем эти элементы и начинаем натягивать на движок. И тут оказывается, что те красивые стрелочки мы вставить не можем, так как этот список полностью генерируется системой управления содержимым. Хорошо, если она имеет открытый исходный код, тогда можно залесть поглубже, отыскать нужные строчки и изменить их как душе угодно. А если нет? А если это все находится глубоко в базе, куда нет доступа? Вот тут мы и вспоминаем, что вроде бы есть какое-то свойство, позволяющее вставлять символы в хтмл из цсс-файла. Но во всех учебниках написано, что оно никак не поддерживается нашим любимым эксплорером до версии 8.0. Ниже я покажу, как обойти эту проблему и эмулировать свойство content с помощью скриптов.
Имеем список:
<ul class="breadcrumbs"> <li>Пункт меню 1 </li> <li>Пункт меню 2 </li> <li>Пункт меню 3 </li> <li>Пункт меню 4 </li> </ul>
Для нормальных браузеров в цсс напишем:
.breadcrumbs li:after{ content: "\00a0\2192\00a0"}
.breadcrumbs li{ float:left; list-style:none}
А для ие6 и ие7:
.breadcrumbs li{zoom: expression(runtimeStyle.zoom=0,insertBefore(createElement("m")));}
.breadcrumbs m{zoom: expression(runtimeStyle.zoom=0, innerText="\00a0\2192\00a0");}
Применив свойство float, мы получим красивое меню - 'хлебные крошки' с помощью цсс. Проверить.
Теперь рассмотрим вариант, где у последнего пункта меню нет стрелочки. Хтмл-код тот же. Цсс для нормальных браузеров:
.breadcrumbs li{ float:left; list-style:none}
.breadcrumbs li:first-child:before{ content: ""}
.breadcrumbs li:before{ content: "\00a0\2192\00a0"}
Для ие6 и ие7:
.breadcrumbs li{zoom: expression(runtimeStyle.zoom=0,previousSibling&&insertBefore(createElement("m"), firstChild));}
.breadcrumbs li m{zoom: expression(runtimeStyle.zoom=0, innerText="\00a0\2192\00a0");}
Теперь последний вариант, когда необходимо поставить стрелочку(или что-то другое) перед каждым пунктом меню. Я покажу на примере длинного тире. Хтмл-код следующий:
<ul class="mdash"> <li>Пункт меню 1 </li> <li>Пункт меню 2 </li> <li>Пункт меню 3 </li> <li>Пункт меню 4</li> </ul>
Цсс для нормальных браузеров:
.mdash li:before{ content: "\2015\00a0"}
.mdash li{ list-style:none}
Для ие6 и ие7:
.mdash li{zoom: expression(runtimeStyle.zoom=0,insertBefore(createElement("m"), firstChild));}
.mdash m{zoom: expression(runtimeStyle.zoom=0, innerText="\2015\00a0");}
Теперь, добавив класс "mdash" к тегу "ul", мы получим красивые списки с длинным тире, которые генерируются цсс.
Остается отметить, что пользователи ие6 и ие7, которые отключают скрипты, генерируемого содержимого не увидят. Ну здесь мы им уже ничем помочь не сможем, кроме как посоветовать включить скрипты или обновить браузер до 8 версии.
Чтоб картина была более полной, приведу таблицу с наиболее часто используемыми шестнадцатеричными символами Unicode:
|
Наименование знака |
Вид знака |
Шестнадцатеричный код |
|---|---|---|
|
Неразрывный пробел |
|
00A0 |
|
Левая кавычка «ёлочка» |
« |
00AB |
|
Правая кавычка «ёлочка» |
» |
00BB |
|
Левая кавычка „лапка“ |
„ |
201E |
|
Правая кавычка „лапка“ |
“ |
201C |
|
Тире |
— |
2014 |
|
Короткое тире |
– |
2013 |
|
Минус |
− |
2212 |
|
Многоточие |
… |
2026 |
|
Знак Евро |
€ |
20AC |
|
Параграф |
§ |
00A7 |
|
Номер |
№ |
2116 |
|
Знак охраны авторского права |
© |
00A9 |
|
Символ зарегистрированного товарного знака |
® |
00AE |
|
Символ товарного знака |
™ |
2122 |
|
Знак градуса |
° |
00B0 |
|
Плюс минус |
± |
00B1 |
|
Стрелка влево |
← |
2190 |
|
Стрелка вверх |
↑ |
2191 |
|
Стрелка вправо |
→ |
2192 |
|
Стрелка вниз |
↓ |
2193 |
|
Приблизительно равно |
≈ |
2248 |
|
Меньше или равно |
≤ |
2264 |
|
Больше или равно |
≥ |
2265 |
|
Черта дроби (более наклонная, чем прямой слеш «/») |
⁄ |
2044 |
|
Черта деления (более наклонная, чем прямой слеш «/») |
∕ |
2215 |
|
Вертикальная черта |
| |
007C |
Естественно, область применения свойства "content" не ограничивается генерацией элементов, которые я приводил в своих примерах. Она намного шире и ограничена только фантазией автора.
Rss-подписка
Email
Re: Учимся использовать свойство content
Огромное спасибо. Очень помогает при создании пути к данной странице.
Re: Учимся использовать свойство content
Пожалуйста, рад что пост оказался Вам полезен :)