Интерфейс пользователя
18 Интерфейс пользователя
Содержание
18.1 Курсоры: свойство 'cursor'
- 'cursor'
-
Значение: [ [<uri> ,]* [ auto | crosshair | default | pointer | move | e-resize | ne-resize | nw-resize | n-resize | se-resize | sw-resize | s-resize | w-resize| text | wait | help ] ] | inherit Начальное значение: auto Область применения: все элементы Наследование: да Процентное задание значений: нет Ассоциированные устройства: устройства визуального форматирования, интерактивные устройства
Данное свойство определяет тип курсора, используемого при работе с клавиатурой или мышью. Принимаемые им значения имеют следующий смысл:
- auto
- Агент пользователя определяет отображаемый курсор, исходя из контекста.
- crosshair
- Простое перекрестие (напоминающее символ "+").
- default
- Курсор, используемый на данной платформе по умолчанию. Зачастую представляется в виде стрелки.
- pointer
- Курсором представляется указателем, обозначающим ссылку.
- move
- Курсор, определяющий объект, который можно переместить.
- e-resize, ne-resize, nw-resize, n-resize, se-resize, sw-resize, s-resize, w-resize
- Курсор, определяющий перемещение некоторого края. Например, при перемещении, начинающемся с правого нижнего угла блока, используется курсор 'se-resize'.
- text
- Курсор, используемый при выделении текста. Зачастую представляется в виде вертикальной линии "|".
- wait
- Курсор, указывающий на занятость программы, когда пользователю необходимо подождать. Зачастую представляется в виде циферблата или песочных часов.
- help
- Курсор, означающий, что для объекта, на который он указывает, имеется справочная информация. Зачастую представляется в виде вопросительного знака или воздушного шара.
- <uri>
- Агент пользователя загружает курсор из ресурса, задаваемого этим URI. Если агенту не удается обработать курсор, расположенный первым в списке курсоров, он должен попытаться обработать второй, третий и т.д. Если агенту не удается обработать ни одного курсора, заданного пользователем, он должен использовать общий курсор, расположенный в конце этого списка.
P { cursor : url("mything.cur"), url("second.csr"), text; }
18.2 Пользовательские настройки цветов
Кроме использования заранее определенных значений цветов для текста, фона и т.п., CSS2 позволяет авторам определять цвета в такой форме, которая подразумевает их интеграцию в графическую среду пользователя. В результате правила стилей, принимающие во внимание настройки пользователя, предлагают следующие преимущества:
- Позволяют создавать страницы, отвечающие требованиям и вкусу пользователя.
- Позволяют создавать более доступные страницы, т.к. настройки пользователя могут быть связаны с физическими ограничениями пользователей.
Множество значений, заданных для системных цветов, должно быть исчерпывающим. Значение, которое отсутствует в системе, должно быть заменено ближайшим к нему атрибутом системы или цветом, используемым по умолчанию.
Ниже перечислены дополнительные значения атрибутов CSS, используемых при настройке цветов, и их семантика. Любое свойство, используемое при настройке цветов (например, 'color' или 'background-color'), может принимать одно из следующих имен. Несмотря на независимость от регистра, рекомендуется соблюдать используемое в них сочетание заглавных и строчных букв, делающее данные имена более разборчивыми.
- ActiveBorder
- Цвет границы активного окна.
- ActiveCaption
- Цвет заголовка активного окна.
- AppWorkspace
- Цвет фона мультидокументного интерфейса.
- Background
- Цвет фона рабочего стола.
- ButtonFace
- Цвет "лицевой" стороны объемных элементов.
- ButtonHighlight
- Цвет насыщенной тени для объемных элементов (ребер, находящихся в тени).
- ButtonShadow
- Цвет тени объемных элементов.
- ButtonText
- Цвет текста на кнопках.
- CaptionText
- Цвет текста в заголовках, в элементах управления размерами и элементах полосы прокрутки.
- GrayText
- Цвет отключенного (недоступного) текста. Если текущий драйвер дисплея не поддерживает насыщенно-серый цвет, для этого цвета устанавливается значение #000.
- Highlight
- Цвет объектов, выделяемых в элементах управления.
- HighlightText
- Цвет текста в объектах, выделенных в элементах управления.
- InactiveBorder
- Цвет границы неактивного окна.
- InactiveCaption
- Цвет заголовка неактивного окна.
- InactiveCaptionText
- Цвет текста в неактивном заголовке.
- InfoBackground
- Цвет фона всплывающей подсказки.
- InfoText
- Цвет текста всплывающей подсказки.
- Menu
- Цвет фона меню.
- MenuText
- Цвет текста в меню.
- Scrollbar
- Цвет полосы прокрутки.
- ThreeDDarkShadow
- Цвет насыщенной тени для объемных элементов.
- ThreeDFace
- Цвет "лицевой" стороны объемных элементов.
- ThreeDHighlight
- Цвет, используемый при выделении объемных элементов.
- ThreeDLightShadow
- Светлый цвет объемных элементов (ребер, расположенных "лицом" к источнику света).
- ThreeDShadow
- Цвет насыщенной тени для объемных элементов.
- Window
- Цвет фона окна.
- WindowFrame
- Цвет рамки окна.
- WindowText
- Цвет текста в окне.
Например, следующее правило позволяет использовать одинаковые цвета для оформления элементов переднего и заднего плана, соответственно, в абзаце и в пользовательском окне:
P { color: WindowText; background-color: Window }
18.3 Настройки пользователя для шрифтов
Как и для цветов, разработчики могут задавать шрифты таким образом, чтобы использовать системные ресурсы пользователя. Более подробную информацию можно получить в описании свойства 'font'.
18.4 Динамические контуры: свойство 'outline'
Иногда авторам таблиц стилей необходимо акцентировать внимание на некотором визуально отображаемом объекте, например, на кнопке, активном поле формы, месте для графического объекта и т.д. В CSS2 такие объекты можно окружить контуром, отличие которого от границ состоит в следующем:
- Контуры вообще не занимают места.
- Контуры могут иметь непрямоугольную форму.
Стилем этих динамических контуров управляют соответствующие свойства.
- 'outline'
-
Значение: [ <'outline-color'> || <'outline-style'> || <'outline-width'> ] | inherit Начальное значение: см. каждое свойство в отдельности Область применения: все элементы Наследование: нет Процентное задание значений: нет Ассоциированные устройства: устройства визуального форматирования, интерактивные устройства
- 'outline-width'
-
Значение: <border-width> | inherit Начальное значение: medium Область применения: все элементы Наследование: нет Процентное задание значений: нет Ассоциированные устройства: устройства визуального форматирования, интерактивные устройства
- 'outline-style'
-
Значение: <border-style> | inherit Начальное значение: none Область применения: все элементы Наследование: нет Процентное задание значений: нет Ассоциированные устройства: устройства визуального форматирования, интерактивные устройства
- 'outline-color'
-
Значение: <color> | invert | inherit Начальное значение: invert Применяется: все элементы Наследование: нет Процентное задание значений: нет Ассоциированные устройства: устройства визуального форматирования, интерактивные устройства
Контур, созданный с использованием свойств контура, выводится "над" блоком, т.е. всегда находится поверх него и не влияет на расположение и размеры данного блока или любых других блоков. Поэтому отображение или удаление контуров не приводит к переформатированию страницы.
Контур выводится непосредственно за пределами краевой линии границы.
Контуры могут иметь непрямоугольную форму. Например, если элемент разбит на несколько строк, то контур строится, исходя из минимума, необходимого для того, чтобы вместить все порожденные им блоки. В противоположность границам контуры никогда не остаются разорванными в начале или в конце линейного блока, они всегда замкнуты.
Свойство 'outline-width' принимает те же значения, что и свойство 'border-width'.
Свойство 'outline-style' принимает те же значения, что и свойство 'border-style', за исключением значения 'hidden', недопустимого для стиля контура.
Свойство 'outline-color' принимает те же значения, что и ключевое слово 'invert', осуществляющее инверсию цветов, используемых для отображения пикселов на экране. Этот традиционный прием используется, для того чтобы независимо от цвета фона акцентирующие границы были всегда видны.
Свойство 'outline' - это сокращенное свойство, оно устанавливает значения для всех трех свойств 'outline-style', 'outline-width' и 'outline-color'.
Обратите внимание, что контуры выглядят одинаково со всех сторон. В отличие от границ, у них нет свойства 'outline-top' или 'outline-left'.
В настоящей спецификации не определено, как прорисовываются несколько наложенных друг на друга контуров или как прорисовываются контуры для блоков, частично затененных другими элементами.
Примечание. Т.к. акцентирующий контур не влияет на форматирование (т.е. для него не резервируется место в модели блока), то он с легкостью может накладываться на другие элементы страницы.
Ниже приведен пример прорисовки толстого контура вокруг элемента BUTTON:
BUTTON { outline-width : thick }
Для динамического изменения толщины контура можно использовать сценарии, что не приводит к необходимости переформатирования страницы.
18.4.1 Контуры и фокус
Контуры могут использоваться в графическом интерфейсе пользователя вокруг элементов страницы, на которых располагается фокус. Эти контуры выступают в роли дополнения к границам, так что их вывод или удаление не должны приводить к переформатированию документа. Фокус представляет собой часть процесса взаимодействия пользователя с документом (например, для ввода текста, выбора кнопки и т.д.). Агенты пользователей, поддерживающие группу интерактивных устройств, должны отслеживать местоположение фокуса и предоставлять средства для его формирования. Это может быть сделано путем использования динамических контуров в сочетании с псевдоклассом :focus.
Например, для того, чтобы всякий раз, когда некоторый элемент находится в фокусе или активизирован, вокруг него отображалась толстая линия черного или красного цвета, соответственно, можно использовать следующие правила:
:focus { outline: thick solid black } :active { outline: thick solid red }
18.5 Увеличение
Группа разработчиков CSS считает, что увеличение документа или его отдельных частей не должно описываться посредством таблиц стилей. Агенты пользователей могут поддерживать эту процедуру другими способами (например, с помощью более крупных изображений, более громких звуков и т.д.)
При увеличении страницы агент пользователя должен сохранять связи между позиционированными элементами. В качестве примера можно рассмотреть страницу комиксов, составленную из изображений с накладывающимися текстовыми элементами. При ее увеличении агент пользователя должен сохранить текст в пределах каждого кружка, в который заключены слова изображенного в комиксе персонажа.