Главная страница
Навигация по странице:

  • Использование графики для маркированных списков

  • background: url(images/scroll_top.jpg) no-repeat center top, url(images/scroll_bottom.jpg) no-repeat center bottom, 304

  • margin-left: 30px; margin-right: 40px;

  • Получение свитка, появляющегося в Internet Explorer 8

  • position: relative; bottom: -5px;

  • Выборка стилизуемых ссылок

  • Понимание состояний ссылок

  • НАМЕК ДЛЯ СМЫШЛЕНЫХ Ограничения на посещения

  • Книга css3 3е издание Серия Бестселлеры OReilly


    Скачать 20.28 Mb.
    НазваниеКнига css3 3е издание Серия Бестселлеры OReilly
    АнкорTheBigBookofCSS33rdedition.pdf
    Дата08.08.2018
    Размер20.28 Mb.
    Формат файлаpdf
    Имя файлаTheBigBookofCSS33rdedition.pdf
    ТипКнига
    #22630
    страница30 из 62
    1   ...   26   27   28   29   30   31   32   33   ...   62


    собственным рисунком, похожим на рукописную линию.

    Глава 8. Добавление графики на веб-страницы
    301
    1. Вернитесь к файлу bg_images.html в текстовом редакторе. Добавьте стиль для тега


    внутри основного

    :
    .main h2 {
    background-image: url(images/underline.png)
    background-repeat: no-repeat;
    }
    Свойство background-image назначает фоновое изображение для тегов


    , на- ходящихся внутри тега с классом main
    ; а значение no-repeat гарантирует, что изображение появится только один раз.
    Если сейчас вы просмотрите файл в браузере, то увидите, что рисунок подчер- кивания расположен не там, где ему положено быть. Он находится над заголов- ками!
    2. Добавьте в стиль
    #main h2
    за свойством background-repeat следующее:
    background-position: left bottom;
    Мы изменили начальную позицию фонового изображения. Теперь оно выводится, начиная от левого нижнего угла тега


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


    , необходимо всего лишь увели- чить его общую высоту, чтобы сместить линию фонового рисунка немного вниз.
    Для этого воспользуемся небольшим отступом.
    3. Подкорректируйте стиль
    .main h2
    еще раз, чтобы он выглядел следующим об- разом:
    .main h2 {
    background-image: url(images/underline.png);
    background-repeat: no-repeat;
    background-position: left bottom;
    padding-bottom: 7px;
    }
    Как вы помните, отступ является промежутком между границей (или краем фона) и содержимым. Это также увеличивает суммарную высоту блока — в дан- ном случае добавляется 7 пикселов нижнего отступа. Теперь граница изобра- жения находится в нижней части блока h2 4. Сохраните файл и просмотрите веб-страницу в браузере.
    Теперь все теги


    имеют рукописную линию подчеркивания. Займемся бло- ком боковой панели, сделаем его менее угловатым и плоским, а также улучшим вид маркированных списков.
    Использование графики для маркированных списков
    Стандартный маркер, используемый для маркированных списков, представляет собой черное пятнышко, что совсем не впечатляет. Но вы можете создать собствен- ные маркеры путем применения свойства background-image
    , заменив однообразные и скучные значки любым изображением. Первое, что необходимо сделать, — скрыть стандартные маркеры, которые предваряют элементы-пункты списка.


    302
    Часть 2. Применение CSS
    1. Вернитесь к веб-странице images.html в HTML-редакторе. Добавьте стиль для форматирования списка пунктов левой боковой панели.
    .announcement li {
    list-style: none;
    }
    Маркированный список находится внутри тега

    с классом announcement
    , так что этот селектор потомка воздействует только на пункты списка (теги

  • ) вну- три этого

    . Этот стиль удаляет маркеры. Теперь добавим наш рисунок.
    ПРИМЕЧАНИЕ
    Вы можете точно так же применить свойство list-style: none; к стилям тегов
      или
        , чтобы удалить маркеры всех элементов-пунктов списка.
        2. Добавьте в стиль
        .announcement li следующие два свойства:
        background-image: url(images/flower_bullet.png);
        background-repeat: no-repeat;
        Мы встречались с ними раньше. Одно из них добавляет фоновое изображение, а другое — отменяет его повторение, чтобы рисунок отображался однократно.
        При просмотре веб-страницы вы увидите, что сейчас маркеры накладываются на текст элементов списка и пункты списка отображаются очень тесно друг к другу
        (рис. 8.25, слева). Небольшие отступы и поля исправят эту проблему.
        Рис. 8.25. Заменить стандартные маркеры списков собственными графическими значками чрезвычайно просто: всего несколько дополнительных шагов обеспечат точное и правильное размещение маркеров и текста пунктов списка
        3. Добавьте в стиль
        .announcement li еще два свойства:
        padding-left: 25px;
        margin-bottom: 10px;
        Левый отступ добавляет пустой промежуток, смещая текст в сторону, чтобы отобразить новый значок маркера. Нижнее поле обеспечивает рассредоточение элементов списка, образуя небольшие интервалы (см. рис. 8.25, посередине).
        Однако остался еще один недостаток. Изображение маркера чуть выступает над текстом строки, и значок выделяется над текстом пунктов списка. Это легко исправить с помощью свойства background-position
        4. Завершим этот стиль, добавив свойство background-position: 0px 4px;
        . Закон- ченный стиль должен выглядеть следующим образом:
        .announcement li {
        list-style: none;
        background-image: url(images/bullet.png);
        background-repeat: no-repeat;

    Глава 8. Добавление графики на веб-страницы
    303
    background-position: 0 4px;
    padding-left: 25px;
    margin-bottom: 10px;
    }
    Это последнее изменение стиля помещает значок маркера в крайнюю левую позицию (это 0), отстоящую на 4 пиксела от верхнего края элемента-пункта списка, что обеспечивает совсем незначительное смещение значка, тем не менее, достаточное для того, чтобы маркер выглядел безупречно.
    СОВЕТ
    Я рекомендую использовать именно свойство background вместо list-style-image для добавления собственных графических маркеров списков. Оно обеспечивает возможность точного позициони- рования значков маркеров.
    5. Сохраните файл и просмотрите веб-страницу в браузере.
    Теперь пункты списка имеют оригинальные маркеры вместо скучных черных кружков (см. рис. 8.25, справа).
    Придание боковой панели характерных особенностей
    На данный момент боковая панель выглядит довольно неплохо. Текст приятно отформатирован, маркеры отлично смотрятся, но сама боковая панель теряется на белом фоне. Добавление фонового изображения позволит ее заметно выделить.
    Вы можете использовать одно изображение в виде свитка, показанное на рис. 8.23, в фоне тега

    . А чтобы убедиться, что весь текст попадает в данное изображение, вам следует ограничить количество содержимого, которое вы размещаете на боковой панели. Если будет слишком много текста, он просто не поместится в пределах изо- бражения (см. верхнее изображение слева на рис. 8.12), и, наоборот, если будет слиш- ком мало текста, у вас окажется много пустого пространства.
    Более гибкий подход позволяет изображению увеличиваться по мере того, как на боковой панели увеличивается количество текста (см. нижнее изображение спра- ва на рис. 8.12). Хорошо, что эту маленькую хитрость не так сложно реализовать — вам понадобится три разных изображения и три разных стиля.
    Как уже говорилось в разделе «Использование нескольких фоновых изображе- ний» данной главы, существует несколько способов достижения данного эффекта.
    Можно сделать фоновую часть свитка (там, где появляется текст) в виде повторя- ющегося фонового изображения в div
    -элементе, затем поместить фоновое изобра- жение для верхней части свитка в верхнюю часть div
    -элемента, а фоновое изобра- жение нижней части свитка в нижнюю часть div
    -элемента. Фактически именно этот метод и использовался в предыдущих изданиях книги. Но сейчас большинство браузеров поддерживают появившуюся в CSS3 возможность объявления несколь- ких фоновых изображений, которой можно воспользоваться взамен старого мето- да. Получится намного проще, и не нужно будет создавать три разных стиля.
    1. Вернитесь к текстовому редактору и файлу bg_images.html
    . Перейдите к стилю
    .announcement
    (который вы создали в шаге 6 в подразделе «Добавление на веб- страницу фонового изображения» данного раздела) и добавьте одно свойство:
    .announcement {
    background: url(images/scroll_top.jpg) no-repeat center top,
    url(images/scroll_bottom.jpg) no-repeat center bottom,

    304
    Часть 2. Применение CSS
    url(images/scroll_middle.jpg) repeat-y center top;
    margin-top: 115px;
    }
    2. Обновите стиль
    .announcement
    , добавив верхний и нижний отступы. Внесите изменение, выделенное полужирным шрифтом:
    .announcement {
    background: url(images/scroll_top.jpg) no-repeat center top,
    url(images/scroll_bottom.jpg) no-repeat center bottom,
    url(images/scroll_middle.jpg) repeat-y center top;
    padding: 70px 0 60px 0;
    margin-top: 115px;
    }
    Еще одна проблема проявляется в том, что маркированный список выдается как с левой, так и с правой стороны изображения боковой панели. Сделаем так, чтобы он соответствовал этому изображению, добавив немного левых и правых полей.
    3. Перейдите к стилю
    .announcement li
    , созданному ранее, и добавьте два свойства в конце:
    .announcement li {
    list-style: none;
    background-image: url(images/bullet.png);
    background-repeat: no-repeat;
    background-position: 0 4px;
    padding-left: 25px;
    margin-bottom: 10px;
    margin-left: 30px;
    margin-right: 40px;
    }
    Эти свойства перемещают левый и правый края каждого пункта маркированного списка на достаточное расстояние, чтобы очистить края фонового изображения.
    4. Сохраните файл и просмотрите его в браузере.
    Страница должна выглядеть как правое изображение на рис 8.23 на всех брау- зерах, кроме Internet Explorer 8. Этот браузер несколько фоновых изображений не поддерживает.
    Получение свитка, появляющегося
    в Internet Explorer 8
    Хотя Internet Explorer 8 не поддерживает несколько фоновых изображений, та- кую поддержку можно имитировать, особенно когда нужно только два или три фоновых изображения. Используя сгенерированное содержимое (см. раздел «Раз- личные свойства» в приложении 1), можно добавить текст или изображения пе- ред и после любого элемента на странице. В данном случае верхнюю часть свит- ка можно добавить перед div
    -элементом, а его нижнюю — после этого элемента.

    Глава 8. Добавление графики на веб-страницы
    305
    Если поддержка Internet Explorer 8 вас особо не волнует, этот шаг можно про- пустить, но если вам хочется посмотреть, как эта работа делается в Internet Explorer 8 и в последующих версиях, а также в других текущих браузерах, читайте дальше.
    1. Отредактируйте стиль
    .announcement
    , оставив только одно фоновое изображение
    (среднюю часть свитка) и убрав отступы:
    .announcement {
    background: url(images/scroll_middle.jpg) repeat-y center top;
    margin-top: 115px;
    }
    Отступы не понадобятся, потому что другие изображения займут пространство выше и ниже div
    -элемента. Затем будет добавлено верхнее изображение свитка в качестве элемента, предшествующего div
    2. Добавьте ниже стиля
    .announcement следующий стиль:
    .announcement:before {
    content: url(images/scroll_top.jpg);
    }
    Как уже упоминалось выше, псевдоэлемент
    :before позволяет добавлять содер- жимое перед тегом. Это может быть текст или (как в данном случае) изображе- ние. Теперь перейдем к нижней части свитка.
    3. Добавьте ниже только что добавленного стиля
    :before следующий стиль:
    .announcement:after {
    content: url(images/scroll_bottom.jpg);
    }
    Этот код добавит после div
    -элемента нижнюю часть свитка. Но в действитель- ности это изображение установится не после div
    -элемента, а поверх него, и div расширится, чтобы его уместить. Если посмотреть на страницу, будет немного виден фон элемента div
    (свиток), показанный ниже скрученной нижней части свитка. Исправить положение поможет дополнительная небольшая магия CSS.
    4. Отредактируйте только что созданный стиль, добавив в него еще две строки кода (выделенные полужирным шрифтом):
    .announcement:after {
    content: url(images/scroll_bottom.jpg);
    position: relative;
    bottom: -5px;
    }
    Здесь мы немного забегаем вперед, поскольку о свойстве position не будет се- рьезных упоминаний вплоть до гл. 15. Но если коротко объяснять, вы смещаете нижнюю часть свитка на 5 пикселов вниз, чтобы прикрыть фоновое изображе- ние div
    -элемента.
    Теперь страница должна выглядеть как правое изображение на рис. 8.23 и быть похожа на ту, что создавалась в предыдущей части урока с помощью нескольких изображений. Обе страницы, bg_images.html и bg_images_ie8.html можно найти в папке
    08_finished/03_bg_ex

    9
    Приводим в порядок
    навигацию сайта
    Можно с уверенностью сказать, что без ссылок не было бы Интернета. Возмож- ность находиться на одной веб-странице, а затем, щелкнув кнопкой мыши, перей- ти на другую страницу, расположенную на компьютере на другом конце света, — вот что делает Сеть такой полезной и незаменимой. Ссылки предоставляют своеобраз- ный способ навигации и управления содержимым сайта. Именно поэтому дизай- неры веб-страниц прилагают столько усилий для создания привлекательных ссы- лок, работающих должным образом.
    В этой главе вы познакомитесь с разработкой стилей ссылок, позволяющих им визуально выделяться из общего содержимого страниц. Вы узнаете, как обеспе- чить визуальные подсказки, чтобы посетители сайта могли видеть, какие ссылки они уже посещали, а какие — нет. Я также научу вас созданию на веб-страницах средствами CSS кнопок и панелей навигации, как это делают профессиональные разработчики. И в заключение, в практической части, мы создадим полный набор средств — элементов навигации, одинаково хорошо работающих во всех разновид- ностях браузеров.
    Выборка стилизуемых ссылок
    В CSS, как обычно, сначала нужно выбрать объект, для которого вы хотите опре- делить стиль. Для этого надо сообщить CSS не только что стилизовать, то есть конкретный объект, но и условия стилизации. Браузеры отслеживают процесс вза- имодействия посетителя сайта со ссылками и затем отображают их по-разному в зависимости от статуса. Таким образом, применяя селекторы в CSS, вам предо- ставляется возможность адресовать стили к ссылкам в определенном состоянии.
    Понимание состояний ссылок
    Большинство браузеров распознают четыре основных состояния ссылок:
    
    непосещенная ссылка;
    
    посещенная ссылка (это означает, что по ссылке уже выполнялся переход, то есть URL-адрес сохранен в журнале истории браузера);
    
    ненажатая (над которой находится указатель мыши);
    
    нажатая ссылка (удерживаемая мышью).

    Глава 9. Приводим в порядок навигацию сайта
    307
    Как описано в гл. 3, CSS предоставляет четыре псевдокласса селекторов, соот- ветствующих этим состояниям:
    :link
    ,
    :visited
    ,
    :hover
    ,
    :active
    . Используя их, вы можете применить различное форматирование для каждого состояния ссылки, обеспечивая соответствующие подсказки и однозначно давая понять посетителю сайта, какие ссылки он уже посещал, а какие — нет.
    ПРИМЕЧАНИЕ
    Браузеры распознают также псевдоклассы :focus. Ссылки получают фокус, когда посетители, недо- любливающие мышь, используют клавиатуру, чтобы перейти на ссылки с помощью клавиши табу- ляции. Этот псевдокласс также полезно применять с текстовыми полями формы, что будет показа- но в уроке по стилизации формы в гл. 11.
    Предположим, вы хотите изменить цвет текста непосещенной ссылки с синего цвета на ярко-оранжевый. Для этого добавьте следующий стиль:
    a:link { color: #F60; }
    Щелкаем кнопкой мыши на этой ссылке, и ее состояние изменяется на посе- щенное, а цвет в большинстве браузеров становится фиолетовым. Чтобы изменить его на насыщенно-красный, примените такой стиль:
    a:visited { color: #900; }
    СОВЕТ
    Если требуется одинаково отформатировать все состояния ссылок, используйте один и тот же шрифт и размер для всех состояний, а затем отформатируйте тег , создав общий селектор a.
    Далее вы сможете применять конкретные состояния ссылок, например a:visited, для изменения цвета или настройки какого-либо конкретного состояния.
    НАМЕК ДЛЯ СМЫШЛЕНЫХ
    Ограничения на посещения
    Из­за проблем конфиденциальности браузеры начали накладывать некоторые ограничения на CSS­свойства, применяемые к псевдоклассу
    :visited
    . Оказалось, что злоумышленники научились с помощью JavaScript считывать изменения в стиле
    :visited ссылок, что­
    бы определить, какие сайты посещались. Например, путем загрузки нового фонового изображения для ссылок на посещенные сайты можно определить, был ли посетитель на сайтах
    Paypal.com, eBay.com,
    BankofAmerica.com и т. д. Из­за потенциальной воз­
    можности возникновения проблем наложены ограни­
    чения на стилевое изменение цвета, фонового цвета и цвета рамки ссылок на посещенные сайты, исключая случаи заблаговременного придания этим ссылкам при их обычном состоянии цвета, фонового цвета или цвета рамки. То есть теперь уже нельзя рассчитывать на внесение изменений с помощью псевдокласса
    :visited
    Псевдокласс
    :hover предоставляет творческую свободу (мы изучим его в этой главе несколько позже). Он позволяет полностью изменить вид гиперссылки при наведении указателя мыши и перемещении его над ссылкой. Если раньше для визу- ального представления кнопок навигации при наведении на них указателя мыши вы применяли объемный код на языке JavaScript, то вам понравится способ достижения такого же эффекта посредством простейшей строки кода CSS (см. раздел «Стилиза- ция ссылок» данной главы). Для начала изучим простой пример, в котором стиль изменяет цвет ссылки при наведении и перемещении указателя мыши:

    308
    Часть 2. Применение CSS
    a:hover { color: #F33; }
    СОВЕТ
    Будьте внимательны при добавлении свойств CSS к псевдоклассу :hover. Свойства, изменяющие размер элемента, над которым наведен указатель мыши, могут повлиять на другие элементы, на- ходящиеся рядом. Например, если вы
    увеличиваете размер шрифта текстовой ссылки, над которой наведен указатель мыши, то при наведении указателя текст будет увеличиваться, выталкивая дру- гие элементы с их позиций. Результат может оказаться раздражающим.
    Теперь рассмотрим пример специально для «одержимых» веб-дизайнеров, ко- торым нравится делать свои страницы непохожими на остальные. Изменим вид гиперссылки на доли миллисекунды, то есть на момент, когда посетитель щелкает кнопкой мыши на ссылке. Для этого напишем следующий стиль:
    a:active {color: #B2F511; }
    В большинстве случаев для обеспечения максимальной гибкости дизайна тре- буется включить в таблицу стилей псевдоклассы
    :link
    ,
    :visited:
    и
    :hover
    . Но, что- бы этот метод работал, вы должны расположить ссылки в определенной последо- вательности: link
    , visited
    , hover и active
    . Для запоминания этого порядка запомните аббревиатуру по первым буквам соответствующих стилям английских слов:
  • 1   ...   26   27   28   29   30   31   32   33   ...   62


    написать администратору сайта