|
Книга css3 3е издание Серия Бестселлеры OReilly
,
и т. д.) — полужирным. Вы можете управлять этими параметрами. Можно отменить полужирное начерта- ние для заголовков или выделить курсивом обычный текст, используя свойства font-style и font-weight Чтобы выделить текст курсивом, добавьте к стилю следующий код: font-style: italic; Или, наоборот, можете установить для текста обычный, не курсивый шрифт: font-style: normal; ПРИМЕЧАНИЕ Свойство стиля шрифта font-style на самом деле содержит третью команду oblique, которая имеет тот же эффект, что italic. Свойство толщины шрифта font-weight позволяет делать текст полужирным или обычным. Фактически согласно правилам CSS можно указать девять числовых значений (100–900) для определения точных, едва различимых градаций плотнос- ти (от «суперплотного» (900) до «крайне легкого, почти невидимого» (100)) шриф- та. Естественно, чтобы эти команды работали, сами используемые шрифты долж- ны иметь для них девять различных значений толщины, обеспечивая тем самым заметный визуальный эффект для посетителей сайта. Единственный способ приме- нения числовых значений касается рассмотренных ранее веб-шрифтов. Фактически
176 Часть 2. Применение CSS числовые значения используются Google web fonts исключительно для задания плотности шрифта. ПРИМЕЧАНИЕ При применении веб-шрифтов задание для текста полужирного и курсивного начертания требуют выполнения других ранее рассмотренных действий. Чтобы сделать шрифт текста полужирным, наберите: font-weight: bold; Обычный шрифт устанавливается следующим образом: font-weight: normal; СОВЕТ Поскольку для заголовков уже предопределен стиль с полужирным начертанием, возможно, по- требуется другой способ для выделения, которое вы хотите придать некоторым частям текста внутри заголовка. Вот один из способов: h1, strong {color: #3399FF;} Этот стиль с производным селектором меняет цвет всех элементов (обычно отображаемых полужирным шрифтом), заключенных внутри . Прописные буквы Набрать текст прописными буквами очень просто: нажмите клавишу фиксации ре- гистра заглавных букв Caps Lock и вводите текст. Что же делать, если нужно, чтобы прописными буквами были написаны все уже набранные заголовки веб-страницы или текст, который скопировали и вставили из Microsoft Word? Вместо того чтобы повторно вводить заголовки, обратитесь к CSS-свойству text-transform . С его помо- щью можно преобразовать любой текст в верхний или нижний регистры или даже превратить первые буквы каждого слова в прописные (для названий и заголовков). Вот пример преобразования в прописные буквы: text-transform: uppercase; Сделать буквы строчными можно с помощью значения lowercase , а превратить первые буквы слов в прописные — используя capitalize Поскольку это свойство наследуемо, любые теги, вложенные в text-transform , приобретают то же форматирование: верхний регистр, нижний, первые прописные буквы слов. Чтобы указать CSS не изменять регистр текста, воспользуйтесь значе- нием свойства none : text-transform: none; Малые прописные буквы. Для придания тексту типографской изысканности можно также использовать свойство font-variant , которое позволяет преобразовать текст таким образом, что все буквы будут малыми прописными. В этом стиле строч- ные буквы выглядят как немного уменьшенные заглавные. Большие фрагменты такого текста становятся трудночитаемыми, но этот стиль придает веб-странице старосветскую, книжную многозначительность. Для создания стиля с малыми про- писными буквами используйте следующий код: font-variant: small-caps;
Глава 6. Форматирование текста 177 Украшение текста CSS предлагает также свойство text-decoration для улучшения внешнего вида тек- ста путем добавления различных дополнительных элементов. С его помощью мож- но добавить линии подчеркивания, надчеркивания, перечеркнуть текст (рис. 6.12) или сделать его мигающим. Свойство text-decoration применяется в сочетании со следующими ключевыми словами: underline , overline , line-through или blink . На- пример, чтобы подчеркнуть фрагмент, наберите код: text-decoration: underline; Рис. 6.12. Результат применения свойства text-decoration Вы можете также объединять несколько ключевых слов для комбинирования эффектов. Добавить к тексту линии подчеркивания и надчеркивания одновремен- но можно следующим способом: text-decoration: underline overline; Однако не стоит изощряться в таком «вычурном» форматировании только по- тому, что есть такая возможность. У всех, кто пользуется Интернетом на протяже- нии долгого времени, любой подчеркнутый текст инстинктивно ассоциируется с гиперссылкой, возникает желание непременно щелкнуть на ней кнопкой мыши. Таким образом, подчеркивать слова, не являющиеся частью гиперссылки, будет не очень хорошей идеей. Использование же мерцания blink на самом деле скорее вы- даст в вас начинающего дизайнера (к тому же большинство браузеров не сделают текст мерцающим, даже если вы укажете им это).
178 Часть 2. Применение CSS СОВЕТ Вы можете применить эффект, подобный подчеркиванию и надчеркиванию, если добавите к эле- менту — в данном случае к тексту — линию рамки border сверху или снизу (см. раздел «Добавление границ» гл. 7). Преимущество состоит в том, что с помощью свойства border вы можете управлять одновременно многими параметрами: размещением, размером, цветом линий-рамок и в конечном счете придать тексту более привлекательный вид, не делая его похожим на гиперссылки. Значение overline свойства text-decoration надчеркивает, а line-through — перечер- кивает текст. Некоторые веб-дизайнеры применяют последний эффект, чтобы пока- зать читателю, что фрагмент был удален из первоначального варианта документа. Отменить все элементы украшений можно путем применения ключевого слова none : text-decoration: none; Зачем вам может понадобиться отмена декорирования? Самый распространен- ный пример — удаление стандартной предопределенной подчеркивающей линии гиперссылки (см. раздел «Стилизация ссылок» гл. 9). Межсимвольный и межсловный интервалДругой способ выделения текстового фрагмента состоит в регулировании интер- вала, с которым отображаются отдельные буквы или слова (рис. 6.13). Уменьшение межсимвольного интервала letter-spacing поможет сжать текст заголовков. Они будут казаться еще более плотными и тяжеловесными, а заодно вмещать больше текста на единственной строке заголовка. И наоборот, увеличение интервала может придать заголовкам более спокойный, величественный вид. Чтобы это сделать, используйте отрицательные значения свойства: letter-spacing: -1px; Положительные значения свойства делают промежуток между буквами больше: letter-spacing: .7em; Аналогично можно изменить межсловный интервал, используя свойство word- spacing . Оно делает промежуток между словами шире или уже, не затрагивая про- межутков между буквами внутри самих слов: word-spacing: 2px; С этими свойствами можно использовать любые единицы измерений, приме- нимые к тексту: пикселы, em, проценты (с положительными или отрицательными значениями). Если вы хотите, чтобы текст хорошо читался, применяйте небольшие значения интервалов. В противном случае буквы и слова будут перекрываться, накладывать- ся друг на друга. Чтобы сделать представление содержимого сайта четким и понят- ным, аккуратно используйте межсимвольные и межсловные интервалы. Добавление текстовых тенейВ CSS3 имеется свойство, позволяющее добавлять к тексту тени для придания глубины и выразительности заголовкам, спискам и абзацам (рис. 6.14). Глава 6. Форматирование текста 179 Рис. 6.13. Слишком большое или слишком маленькое значение межсимвольного или межсловного интервалов может сделать текст трудночитаемым или вообще нечитаемым Свойство text-shadow требует задания трех параметров: горизонтального сме- щения (насколько левее или правее текста должна появиться тень), вертикаль- ного смещения (насколько выше или ниже текста будет тень), степень размыто- сти тени и цвет отбрасываемой тени. Например, свойство text-shadow , создающее эффект, который показан в верхней части рис. 6.14, задается следующим обра- зом: text-shadow: -4px 4px 3px #999999; Первое значение — -4px — означает «показать тень на 4 пиксела левее текста». (Положительное значение приведет к показу тени правее текста.) Второе значе- ние — 4px — задает отображение тени на 4 пиксела ниже текста. (Отрицательное значение приведет к показу тени над текстом.) Значение 3px определяет степень размытости тени. Значение 0px (без размытости) приводит к отбрасыванию четкой
180 Часть 2. Применение CSS тени, и чем больше будет значение, тем более размытой будет тень. И наконец, последнее значение определяет цвет отбрасываемой тени. Рис. 6.14. Текстовые тени — отличный способ придания глубины заголовкам и другому тексту. Но свойство text-shadow не работает в Internet Explorer 9 и более ранних версиях Для достижения более сложных эффектов можно даже создать несколько теней (см. нижнее изображение на рис. 6.14): нужно просто добавить запятую, а после нее дополнительные значения отбрасываемой тени: text-shadow: -4px 4px 3px #666, 1px -1px 2px #000; Количество добавляемых таким образом теней ничем не ограничивается (кроме вашего хорошего вкуса). К сожалению, этот эффект не работает в Internet Explorer 9 или более ранних версиях. Но он работает во всех других современных браузерах (даже в Internet Explorer 10). Иными словами, чтобы текст лучше читался, пола- гаться на этот эффект не стоит. Изображение в нижней части рис. 6.14 показывает, что не нужно делать: использовать белый цвет текста, обеспечивая его читаемость исключительно за счет отбрасываемой тени, определяющей очертания текста. В Internet Explorer белый текст на белом фоне просто не будет виден. ПРИМЕЧАНИЕ Красивые приемы использования текстовых теней можно увидеть на сайте http://webexpedition 18.com/ articles/css3-text-shadow-property/. Форматирование абзацев текста В CSS есть свойства, которые используются для форматирования не отдельно взя- тых слов, а фрагментов, блоков текста. Иначе говоря, их можно применять к целым абзацам, заголовкам и т. д.
Глава 6. Форматирование текста 181 Установка межстрочного интервала В дополнение к настройке интервала между словами и буквами (междусловный и межсимвольный интервалы) CSS позволяет устанавливать межстрочный интер- вал (интерлиньяж) — расстояние, промежуток между базовыми линиями двух со- седних строк текста, — используя свойство line-height . Чем выше межстрочный интервал, тем больше промежуток между отдельными строками (рис. 6.15). Рис. 6.15. Свойство установки межстрочного интервала line-height позволяет расположить строки абзаца ближе друг к другу (вверху) или расположить их с меньшим промежутком, растянуть (внизу) Стандартный межстрочный интервал эквивалентен 120 %. Таким образом, на рис. 6.15, вверху, мы видим, что меньшее процентное значение сжимает строки, а большее значение распределяет их более обособленно (см. рис. 6.15, внизу). Межстрочный интервал в пикселах, em, процентах. Как и в свойстве размера шрифта font-size , вы можете использовать пикселы, em или проценты для уста- новки размера межстрочного интервала с помощью свойства line-height : line-height: 150%;
182 Часть 2. Применение CSS Вообще, процентные значения или em лучше, нежели пикселы: размер, установ- ленный в этих единицах измерения, напрямую зависит от параметров шрифта и ав- томатически корректируется пропорционально изменению свойства font-size . Так, если вы зададите межстрочный интервал равным 10 пикселам и затем измените на гораздо больший (например, на 36 пикселов), то высота останется равной 10, а стро- ки будут накладываться друг на друга. Однако при использовании значения размера в процентах (скажем, 150 %) межстрочный интервал корректируется пропорцио- нально всякий раз, когда вы изменяете значение размера шрифта соответствующего свойства font-size Стандартный размер межстрочного интервала браузера составляет 120 %. Та- ким образом, когда вы хотите уменьшить высоту строк, промежуток между ними, используйте меньшее значение. Соответственно, чтобы увеличить межстрочный интервал, то есть положить строки дальше друг от друга, примените значение боль- ше 120 %. ПРИМЕЧАНИЕ Чтобы определить размер межстрочного интервала, браузер вычитает высоту шрифта из высоты строки. В результате получается размер межстрочного интервала (leading) между двумя соседними строками текста абзаца. Допустим, размер шрифта составляет 12 пикселов. Межстрочный интервал, установленный в размере 150 %, в итоге равняется 18 пикселам. Таким образом, браузер добавля- ет пустой промежуток размером 6 пикселов между двумя строками текста. Межстрочный интервал в виде числового значения. CSS предлагает еще одну единицу измерения для установки размера межстрочного интервала — просто чис- ловое значение. CSS-код выглядит следующим образом: line-height: 1.5; После этого значения не нужно указывать никакую единицу измерения. Чтобы определить межстрочный интервал или высоту строки, браузер просто умножает это число на размер шрифта. Так, если размер шрифта текста составляет 1 em, а вы- сота строки установлена равной 1,5, то расчетное значение межстрочного интерва- ла равно 1,5 em. В большинстве случаев эффект при указании значения 1,5 em или 150 % ничем не отличается. Иногда множитель достаточно удобен. Особенно ко гда вложенные теги наследуют значения межстрочного интервала родительских те- гов. Например, вы устанавливаете атрибут высоты строки равным 150 %. Все теги веб-страницы унаследуют это значение. Однако наследуется не процентное значение, а рассчитанное значение межстрочного интервала. Допустим, основной размер шрифта задан равным 10 пикселам. 150 % от 10 пикселов составляет 15. Все теги унаследуют межстрочный интервал размером 15 пикселов. Так, если на веб- странице есть абзац текста со шрифтом высотой 36 пикселов, его межстрочный интервал размером 15 пикселов будет намного меньше самого текста, а строки со- льются. В данном примере вместо высоты строки 150 % для тега лучше установить общий для всех тегов пропорциональный базовый межстрочный интервал в разме- ре 1,5. Любой тег, вместо того чтобы наследовать точное абсолютное значение вы- соты строки в пикселах от стиля body , просто умножает размер своего шрифта на этот Глава 6. Форматирование текста 183 коэффициент. Так, в вышеупомянутом примере, где абзац текста отображен разме- ром шрифта 36 пикселов, межстрочный интервал составит 1,5 ⋅ 36 = 54 пиксела. Выравнивание текста Одним из самых быстрых способов изменить внешний вид веб-страницы является выравнивание текста. Используя свойство text-align , вы можете разместить абзац в центре веб-страницы (горизонтально), расположить текст вдоль левого или пра- вого края или выровнять по ширине (подобно абзацам настоящей книги). Обычно текст на странице выровнен по левому полю, но вам может понадобиться центри- ровать заголовки. Чтобы устанавливать выравнивание для текста, пользуйтесь од- ним из следующих ключевых слов: left , right , justify , center text-align: center; Выровненный текст замечательно выглядит на печатной странице, главным об- разом потому, что при большой разрешающей способности печати учитываются даже мельчайшие настройки интервалов, а также потому, что большинство про- грамм, используемых для разметки печатного материала, могут писать через дефис длинные слова (тем самым пытаясь равномерно распределить символы по строкам). Это предотвращает большие, неприглядные промежутки между абзацами. Веб-стра- ницы в форматировании ограничены возможностями намного более грубой регу- лировки интервалов из-за низкой разрешающей способности мониторов компью- теров и из-за того, что браузеры не умеют писать длинные слова через дефис. Когда вы пользуетесь ключевым словом justify для выравнивания по ширине, получают- ся совершенно разные промежутки между словами, текст становится трудночита- емым. Поэтому, применяя такое выравнивание на веб-страницах, убедитесь в том, что получившийся текст имеет приятный внешний вид. ИНФОРМАЦИЯ ДЛЯ ОПЫТНЫХ ПОЛЬЗОВАТЕЛЕЙ Метод стенографии для набора стилей, форматирования текста Многократный повторный набор стилевых свойств — достаточно утомительное занятие, особенно если нужно использовать несколько различных текстовых свойств сразу. К счастью, в CSS есть свойство font , облегчающее написание стилей. Оно позволяет объединять несколь ко свойств в одну строку: font-style , font-variant , font-weight , font-size , line-height и font-family Рассмотрим, например, следующее объявление: font: italic bold small-caps 18px/150% Arial, Helvetica, sans-serif; Оно приводит к созданию полужирного, курсивного шрифта с малыми прописными буквами размером 18 пикселов, семейства Arial (или Helvetica, или sans serif) с межстрочным интервалом 150 %. Имейте в виду следующие правила: • не обязательно применять все эти свойства, но нужно включить размер шрифта и начертание (се мейства шрифтов): font: 1.5em Georgia, Times, serif;; • используйте один пробел между каждым значе нием свойства, а запятую только для того, чтобы отделить семейства шрифтов в списке: Arial, Helvetica, sans-serif ; • определяя межстрочный интервал, добавляйте слеш после размера шрифта, за которым должно следовать значение самого межстрочного интер вала: % 1.5em/150 или 24px/37px ; • последние два свойства должны быть комбинаци ей: размер шрифта/межстрочный интервал (или
184 Часть 2. Применение CSS font-size/line-height) ; все остальные могут быть перечислены в любом порядке. Например, оба объявления: — font: italic bold small- caps 1.5em Arial и f ont: bold small-caps italic 1.5em Arial; — равнозначны и к ним применен одинаковый эффект. Наконец, исключение значения из списка означает то же, что и установка его по умолчанию. Допустим, вы создали стиль , который форматирует все абзацы полужирным курсивым шрифтом с малыми пропис ными буквами и межстрочным интервалом 2000 % (совсем не обязательно это повторять). Затем создали стилевой класс под названием, скажем, . special- Paragraph с таким объявлением стиля шрифта: font: 1.5em Arial; — и применили его к какомуто абза цу текста. В результате данный абзац не унаследует по лужирное курсивое начертание с малыми прописны ми буквами и межстрочный интервал. Исключение этих четырех значений из стиля .specialParagraph можно приравнять к написанию следующего: font: normal normal normal 1.5em/normal Arial; ИНФОРМАЦИЯ ДЛЯ ОПЫТНЫХ ПОЛЬЗОВАТЕЛЕЙ Отступ первой строки абзаца и удаление полей абзацев В большинстве печатных изданий первая строка каждого абзаца имеет так назы- ваемый абзацный отступ. Он выделяет начало каждого абзаца текста, если нет дополнительных промежутков или увеличенных межстрочных интервалов, визу- ально разделяющих абзацы. В веб-страницах в Интернете нет отступов, но приме- няется увеличенный межстрочный интервал, как в книге. Если у вас есть желание придать веб-страницам индивидуальность, сделать их непохожими на другие, то воспользуйтесь преимуществами таких CSS-свойств, как text-indent и margin . С их помощью вы можете создать отступ первой строки абзацев и удалить (или увеличить) поля. Абзацный отступ. Для установки отступа первой строки абзаца можно исполь- зовать такие единицы измерения, как пиксел и em: px; или em; Значения в пикселах — абсолютные значения, точное число, в то время как em определяет размер отступа в количестве символов (базируется на текущем разме- ре шрифта). СОВЕТ В свойстве абзацного отступа text-indent вы можете использовать отрицательные значения для со- здания выступа, то есть абзаца с выступающей (смещенной, «свисающей») влево первой строкой. Обычно отрицательное значение абзацного отступа используется вместе с указанием значения поля, чтобы отрицательный абзацный отступ не выходил за левую сторону страницы, столбца или прямо- угольной структуры. Вы можете также применить процентные значения, но со свойством text-indent эти единицы измерения приобретают другое значение. В данном случае размер вы- ступа, установленный в процентах, связан не со шрифтом текста, а с шириной эле- мента, в который заключен абзац. Например, если текстовый отступ установлен равным 50 % и абзац охватывает всю ширину окна браузера, то первая строка будет начинаться посередине экрана. Если вы меняете размеры окна, изменяется ширина
Глава 6. Форматирование текста 185 абзаца и, соответственно, отступ (о значениях свойств, устанавливаемых в процен- тах, и о том, как они взаимодействуют с шириной элементов веб-страницы, читайте в разделе «Определение параметров высоты и ширины» гл. 7). Управление полями (границами) абзацев. Многие веб-дизайнеры не любят промежутки или дополнительные интервалы, которые любой браузер добавляет между абзацами. До появления CSS с этим приходилось мириться. К счастью, те- перь можно воспользоваться свойствами margin-top и margin-bottom для удаления (или увеличения) этих промежутков. Чтобы полностью избавиться от верхнего и нижнего полей, введите следующее: margin-top: 0; margin-bottom: 0; Чтобы удалить поля между всеми абзацами веб-страницы, создайте такой стиль: p { margin-top: 0; margin-bottom: 0; } Для установки значений абзацных полей, как и для отступов, вы можете при- менять такие единицы измерения, как пикселы или em. Можно также использовать проценты, но, как и в случае с абзацными отступами, процентные значения отно- сятся к ширине элемента, в который заключен абзац. Во избежание путаницы, свя- занной с вычислением верхнего и нижнего полей, расчет которых базируется на ширине абзацев, проще применять значения в em или пикселах. ПРИМЕЧАНИЕ Поскольку не все браузеры обрабатывают верхнее и нижнее поля заголовков и абзацев согласо- ванно, рекомендую просто обнулить (то есть удалить) все поля в начале таблицы стилей. Посмот- реть на то, как это работает, можно в разделе «Начинаем с чистого листа» гл. 5. Для создания специальных эффектов можно назначить отрицательное значе- ние верхнему или нижнему абзацному полю. Например, верхняя граница, установ- ленная равной 10 пикселам, приподнимает абзац выше на 10 пикселов, возможно, даже визуально накладывая его на вышестоящий элемент веб-страницы. Форматирование первой буквы, первой строки абзаца CSS дает возможность форматирования абзаца с использованием псевдоэлементов :first-line и :first-letter (рис. 6.16). C технической точки зрения они являются селекторами, определяющими фрагмент, к которому применены CSS-свойства. С помощью псевдоэлемента :first-letter можно создать начальную заглавную букву или буквицу, имитируя рукописный стиль текста. Например, чтобы сделать первый символ каждого абзаца полужирным и выделить его красным цветом, не- обходимо написать следующее: p:first-letter { font-weight: bold; color: red; }
186 Часть 2. Применение CSS Рис. 6.16. Псевдоэлемент :first-letter форматирует первый символ стилизуемого элемента — заглавные буквы абзацев Для избирательной стилизации, скажем форматирования только первого сим- вола определенного абзаца, можно применить стилевой класс, например, .intro:
Глава 6. Форматирование текста 187Text for the introductory paragaph goes here... Затем вы можете создать стиль с таким названием, как .intro:first-letter Псевдоэлемент :first-line форматирует первую строку абзаца. Вы можете при- менить его к любому блоку текста, будь то заголовок ( h2:first-line ) или абзац ( p:first-line ). Как и в примере с :first-line , можно применить стилевой класс к единственному абзацу и отформатировать только его первую строку. Допустим, вы хотите отобразить прописными буквами все символы страницы. Примените стиле- вой класс к HTML-коду первого абзаца: и создайте следующее: .intro:first-line { text-transform: uppercase; } ПРИМЕЧАНИЕ По какой-то странной причине браузеры Chrome и Safari не распознают свойство text-transform, когда оно используется с псевдоэлементом :first-line. Другими словами, вы не можете применять в Chrome и Safari CSS для преобразования букв первой строки абзаца в прописные. Стилизация списковТеги и
создают маркированные и нумерованные списки взаимосвязанных элементов, пунктов или пронумерованных шагов, последовательности действий. Однако, как вы, наверное, заметили, не всегда подходит предопределенный брау- зером способ форматирования. Возможно, вы захотите заменить в маркированных списках стандартный маркер собственным, более красивым, использовать в нуме- рованных списках буквы вместо чисел и т. д. Типы списков Большинство браузеров отображают маркированные списки (теги
), исполь- зуя маркеры в виде окружности, а нумерованные списки (
) — предваряя пунк- ты числами. В CSS вы можете выбрать три типа маркеров: диск (круглый маркер с заполнением), окружность (круг, полый круглый маркер), квадрат (квадрат с зарисовкой). Для нумерованных списков предусмотрено шесть вариантов-схем нумерации: decimal , decimal-leading-zero , upper-alpha , lower-alpha , upper-roman , lower-roman (рис. 6.17). Все эти варианты можно выбрать, используя CSS-свойство list-style-type : list-style-type: square; или list-style-type: upper-alpha; Если нужно учесть чьи-нибудь особые предпочтения, числа можно заменить буквами греческого алфавита — α, β, γ, воспользовавшись настройкой lower-greek Существует множество других схем нумерации, включая армянский, грузинский, катакана и другие региональные варианты. Информацию о них можно найти по адресу https://developer.mozilla.org/en-US/docs/CSS/list-style-type Чаще всего это свойство используют при определении стилей, форматирующих
или
. Типичные примеры — включение свойства в стили ol или ul : ul {list- style-type: square;} либо в стилевой класс, применяемый к одному из этих тегов.
188 Часть 2. Применение CSS Рис. 6.17. CSS предоставляет различные способы маркировки нумерованных и ненумерованных списков, начиная с набора геометрических фигур и заканчивая разными системами счисления Тем не менее вы можете применить это свойство и к отдельно взятому элемен- ту списка ( ). Вы даже можете применить несколько стилей с различными мар- керами к отдельным пунктам-элементам одного и того же списка. Например, мо- жете создать стиль тега
, устанавливающий маркеры в виде квадратов, а затем создать стилевой класс .circle , который изменяет тип маркера на круглый: li {list-style-type: square; } .circle { list-style-type: circle; } Теперь примените класс к элементам списка через один для чередования квад- ратных и круглых маркеров:
- Item K/li>
- Item 2
- Item 3
- Item 4
Или, используя рассмотренный ранее селектор nth-of-type , можно вообще из- бавиться от имени класса: li {list-style-type: square; } li:nth-of-type(odd) { list-style-type: circle; }
Глава 6. Форматирование текста 189Иногда может понадобиться вообще скрыть маркеры, в том числе тогда, когда вы захотите использовать собственные графические маркеры (см. обучающий урок этой главы). Кроме того, когда панель навигации сайта представляет собой список ссылок, вы также можете использовать список , скрыв его маркеры (см. подраз- дел «Использование маркированных списков» раздела «Создание панелей навига- ции» гл. 9). Чтобы отключить отображение маркеров, используйте ключевое слово none : list-style-type: none; Позиционирование маркеров и нумерации списков Как правило, браузеры отображают маркеры или числа списков слева от текста пунктов — элементов списка (рис. 6.18, слева). Ключевое слово outside визуально выделяет список и каждый его элемент из всего текста. С помощью CSS вы може- те управлять размещением маркеров, используя свойство list-style-position Определить местоположение можно, как говорилось выше, слева от текста пунктов списка, выделяя их обособленно (стандартный способ отображения браузерами), или внутри текстовых блоков элементов списка (рис. 6.18, справа). Значение inside обеспечит списку максимальную ширину на странице: list-style-position: outside; или list-style-position: inside; СОВЕТ Вы можете изменить промежуток между маркером и текстом путем увеличения или уменьшения значения свойства padding-left (см. раздел «Управление размерами полей и отступов» гл. 7). Чтобы использовать это свойство, нужно создать стиль для тега элементов списка - . Данный способ работает только в том случае, если свойство list-style-position определено со значением outside (или вообще отсутствует).
Кроме того, если вам не нравится, что браузеры делают для списков отступ, смещая все содержимое вправо, можете переопределить стиль, установив значения свойств margin-left и padding-left равными 0. Чтобы удалить отступ, можно создать такой групповой селектор: ul, ol { padding-left: 0; margin-left: 0; } Вы можете создать стилевой класс с такими свойствами и применить его к кон- кретным тегам
или
. Рекомендую установить собственные значения свойств padding и margin по той причине, что одни браузеры для управления отступом исполь- зуют свойство padding (Firefox, Mozilla, Safari), а другие — margin (Internet Explorer). Подробно о свойствах padding и margin вы можете прочесть в следующей главе. В обычном порядке браузеры отображают пункты маркированных списков один над другим, без дополнительного промежутка. Добавить интервал между ними можно, применяя свойства margin-top и margin-bottom к конкретным элемен- там списка. Они работают с интервалом элементов точно так же, как с абзацами.
190 Часть 2. Применение CSS Вы должны только удостовериться в том, что стиль применяется к тегу : со- здайте стилевой класс и примените его индивидуально к каждому тегу. Стиль не должен относиться к тегам
или
. Добавление верхнего или нижнего полей (отступов) к этим тегам увеличивает промежуток между всем списком и абзацами выше или ниже его. На интервал между элементами они не оказывают никакого влияния. Рис. 6.18. Используя свойство list-style-position, вы можете управлять позиционированием маркеров и чисел в списках Графические маркеры Если вам недостаточно стандартных маркеров квадратной и круглой формы, може- те создать собственные. Используя программу редактирования графики, например Photoshop или Fireworks, можно быстро сделать красочные и интересные маркеры. В качестве образцов можете рассмотреть примеры коллекции рисунков и шрифтов символов (таких как Webdings). СОВЕТ Для получения списка многочисленных сайтов с бесплатными значками и маркерами посетите стра- ницу www.cssjuice.com/38-freeicon-checkpoints/. CSS-свойство list-style-image позволяет определить путь к графическому символу на сайте таким же образом, как вы указываете местонахождение файла
Глава 6. Форматирование текста 191с изображением, используя атрибут src HTML-тега . Синтаксис команды следующий: list-style-image: url(images/bullet.gif); Термин url и круглые скобки обязательны. Часть, заключенная в круглые скоб- ки, — в данном примере images/bullet.gif — это и есть путь к графическому симво- лу. Обратите также внимание на то, что, в отличие от HTML, не нужно заключать путь в кавычки. ИНФОРМАЦИЯ ДЛЯ ОПЫТНЫХ ПОЛЬЗОВАТЕЛЕЙНастройка параметров маркеров и чисел в спискахВозможно, вы хотите стилизовать числа нуме- рованных списков таким образом, чтобы они отображались полужирным шрифтом красного цвета вместо давно надоевшего черного. Как можно настроить внешний вид маркеров и чи- сел в списках? CSS предлагает несколько способов настройки па раметров маркеров, предваряющих пункты — эле менты списка. Вы можете использовать собствен ные графические символы, как описано выше. Но имеется еще два метода. Один из них достаточно трудоемкий, однако работает с большинством брау зеров, другой — самый современный, но не работа ет в Internet Explorer 7 или его более ранних версиях. Рассмотрим первый метод. Предположим, вы хоти те, чтобы числа нумерованного списка отобража лись полужирным шрифтом красного цвета, а текст пунктов — обычным черным. Создайте стилевой класс, как делали это применительно к тегам и
. На данном этапе все содержимое списка должно показываться полужирным шрифтом крас ного цвета. Затем создайте стилевой класс, например, . regu- lar List , который устанавливает черный цвет шриф та и нормальную плотность (то есть не полужир ную). Теперь заключите каждый элемент списка в тег
и примените к ним стилевой класс. Например:
- Item
1 . Сейчас маркеры отображаются по лужирным красным шрифтом, а текст — обычным черным цветом. К сожалению, придется заключать в тег каждый элемент списка. Более совершенный способ, экономящий объем CSS кода, состоит в том, чтобы использовать так называемое сгенерированное содержимое . По сути, это все то, что не набирается вручную в виде кода вебстраницы, а автоматически добавляется браузером при отображе нии страницы. Хороший пример — сами маркеры. Вы не вводите знаки маркера при создании списка — они добавляются на вебстраницу сами. С помощью CSS мож но сообщить браузеру, чтобы он генерировал, добавлял такое содержимое и даже отформатировал должным образом все, что находится перед текстом пунктов спи ска —
. Если вы хотите сделать обычные маркеры рядом с элементами списка красными, добавьте к табли це стилей следующий CSS: ul li { list-style-type: none; } ul li:before { content: counter(item, disc) " "; color: red; } А если нужно сделать красными элементы нумерован ного списка, можно добавить следующий CSS: ol li { list-style-type: none; counter-increment: item; } ol li:before { content: counter(item) ". "; color: red; } Дополнительные сведения о том, как придать стиль нуме рованному списку, можно найти по адресу www.456berea street.com/archive/201105/styling_ordered_list_numbers/.
192 Часть 2. Применение CSS ПРИМЕЧАНИЕ Задавая путь или адрес к графическим файлам (изображениям, графическим символам) во внешней таблице стилей, имейте в виду, что путь должен указываться относительно таблицы стилей, а не веб-страницы. Более подробно об этом вы прочтете в разделе «Добавление фоновых изображений» гл. 8, когда мы начнем использовать графику. Свойство list-style-image позволяет применять графические символы в каче- стве маркеров. Однако оно не обеспечивает управления его размещением. Маркер может оказаться слишком высоко или низко расположенным относительно пунк- та списка. Придется переделывать сам графический символ маркера, пока он не будет сочетаться. О более грамотном подходе вы узнаете в гл. 8. Он основан на использовании свойства background-image . Это свойство позволяет точно позицио- нировать графические элементы, в том числе маркеры в списках. СОВЕТ Как и в случае со свойством font (см. врезку «Информация для опытных пользователей. Метод стено- графии для набора стилей, форматирования текста» в разделе «Форматирование абзацев текста» этой главы), здесь применяется метод упрощенного набора атрибутов списков. В свойстве list-style могут быть перечислены все параметры форматирования списков, в том числе list-style-image, list-style-position и list-style-type. Например, стиль ul { list-style: circle inside; } отобразит маркированные списки с марке- рами в виде окружностей без заполнения, не выделяя их из текста пунктов — элементов списка. Когда вы описываете стиль списка с одновременным указанием типа маркера и графического символа — list- style: circle url(images/bullet.gif) inside; — и графический символ не может быть найден по заданному пути, браузер будет использовать предопределенный маркер, в данном случае — окружность. Обучающий урок: форматирование текста в действии В этом обучающем уроке мы попрактикуемся в стилизации таких элементов веб- страниц, как заголовки, списки, абзацы текста, используя мощные средства фор- матирования CSS. Чтобы начать обучающий урок, вы должны загрузить файлы, содержащие учеб- ный материал. Как это сделать, рассказывается в конце гл. 2. Файлы текущей обу- чающей программы находятся в папке с названием 06 Настройка параметров страницы Начнем с таблицы стилей и добавим директиву @font-face , чтобы загрузить неко- торые веб-шрифты для форматирования основного текста страницы. 1. Запустите браузер и откройте файл text.html (рис. 6.19). Здесь пока особо не на что смотреть — есть только коллекция заголовков, абзацы и один маркирован- ный список. Но скоро вы заметно преобразите эту страницу. 2. Откройте файл text.html в HTML-редакторе. Начнем с добавления к этому файлу внутренней таблицы стилей. 3. В заголовке
веб-страницы щелкните кнопкой мыши сразу после закры- вающей скобки тега
. Нажмите Enter и наберите
Глава 6. Форматирование текста 193Теперь, когда основные теги стилей на месте, вы добавите сброс стандартных настроек CSS. Вместо того чтобы набирать вручную весь код, просто скопируй- те и вставьте CSS из внешней таблицы стилей. Рис. 6.19. Работа над любой веб-страницей начинается с обычного HTML-содержимого 4. Откройте файл reset.css . Скопируйте весь код оттуда и вставьте его между откры- вающим и закрывающим тегами |
|
|