Добро пожаловать!
Здесь вы можете найти ответ на интересующий вас вопрос в отрасли сайтостроения, познакомится ближе с web технологиями и web стандартами.

CSS2

Визуальные эффекты. Управление видимостью и переполнением.

Переполнение. Свойство overflow.

Бывают случаи, когда содержимое структурного блока не помещается в его информативной области. При этом возникает ситуация, называемая переполнением. Такое явление может возникнуть, когда:

  • явно заданные геометрические размеры информативной области (значения width и height) не позволяют вместить в нее требуемую информацию в том виде, в каком она задана. Например: для абзаца отведена область 4x5 см, а на нее надо поместить страницу печатного текста;
  • структурный блок является абсолютно позиционируемым и выходит за рамки своего контейнера.

Свойством CSS2, отвечающим за обработку ситуации переполнения, является свойство overflow. Через него задается, что будет происходить с непомещающейся в структурный блок информацией. Свойство overflow может принимать следующие значения:

  • visible
  • hidden
  • scroll
  • auto.

Рассмотрим каждое значение в отдельности.

Overflow: visible

Это значение говорит о том, что вся информация (и дочерние блоки в том числе), заключенная в структурном блоке должна быть отображена. Значение visible используется по умолчанию.

Пример использования (рис. 4.1)

<html>
<head>
<title>
Демонстрация использования CSS-свойства overflow
</title>
<style type ="text/css">
div { border: 1px solid black;
      overflow: hidden;
      width: 200px;
      height: 150px }
p { border: 1px dashed red;
    width: 400px;
    height: 300px;
    margin-top: 10px;
    margin-left: 10px }
</style>
</head>
<body>
<h3>Свойство overflow:hidden</h3>
<div>
<p>
B уездном городе N было так много парикмахерских заведений и бюро
похоронных процессий, что казалось, жители города рождаются лишь
затем, чтобы побриться, остричься, освежить голову вежеталем и
сразу же умереть. А на самом деле в уездном городе N люди рождались,
брились и умирали довольно редко. Жизнь города N была тишайшей.
</p>
</div>
</body>
</html>
Результат применения свойства overflow в значении visible
Рис. 4.1  Результат применения свойства overflow в значении visible.

Примечание:
Браузер MS Internet Explorer некорректно интерпретирует свойство overflow в значении visible. В случае переполнения он увеличивает размеры блока до значений, необходимых для полного вывода всей содержащейся в нем информации. Рассмотренный выше пример в браузере Internet Explorer будет выглядеть следующим образом (рис. 4.2):

Интерпретация свойства overflow:visible браузером Internet Explorer
Рис. 4.2  Интерпретация свойства overflow:visible браузером Internet Explorer.

Overflow: hidden

Это значение указывает на то, что вся информация (и дочерние блоки в том числе ), не уместившаяся в структурном блоке заданных размеров, будет усекаться и отображена не будет.

Пример использования (рис. 4.3)

<html>
<head>
<title>
Демонстрация использования CSS-свойства overflow
</title>
<style type ="text/css">
div { border: 1px solid black;
      overflow: visible;
      width: 200px;
      height: 150px }
p { border: 1px dashed red;
    width: 400px;
    height: 300px;
    margin-top: 10px;
    margin-left: 10px }
</style>
</head>
<body>
<h3>Свойство overflow:hidden</h3>
<div>
<p>
B уездном городе N было так много парикмахерских заведений и бюро
похоронных процессий, что казалось, жители города рождаются лишь
затем, чтобы побриться, остричься, освежить голову вежеталем и
сразу же умереть. А на самом деле в уездном городе N люди рождались,
брились и умирали довольно редко. Жизнь города N была тишайшей.
</p>
</div>
</body>
</html>
Результат применения свойства overflow в значении hidden
Рис. 4.3  Результат применения свойства overflow в значении hidden.

Overflow: scroll

Использование ключевого слова scroll в качестве значения свойства overflow позволяет установить полосы прокрутки, чем достигается возможность доступа к информации без изменения размеров пространства, занимаемого структурным блоком на странице.

Пример использования (рис. 4.4)

<html>
<head>
<title>
Демонстрация использования CSS-свойства overflow
</title>
<style type ="text/css">
div { border: 1px solid black;
      overflow: scroll;
      width: 500px;
      height: 150px }
p { border: 1px dashed red;
    width: 400px;
    height: 300px;
    margin-top: 10px;
    margin-left: 10px }
</style>
</head>
<body>
<h3>Свойство overflow:scroll</h3>
<div>
<p>
B уездном городе N было так много парикмахерских заведений и бюро
похоронных процессий, что казалось, жители города рождаются лишь
затем, чтобы побриться, остричься, освежить голову вежеталем и
сразу же умереть. А на самом деле в уездном городе N люди рождались,
брились и умирали довольно редко. Жизнь города N была тишайшей.
</p>
</div>
</body>
</html>
Результат применения свойства overflow в значении scroll
Рис. 4.4  Результат применения свойства overflow в значении scroll.

Overflow: auto

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

Пример использования (рис. 4.5)

<html>
<head>
<title>
Демонстрация использования CSS-свойства overflow
</title>
<style type ="text/css">
div { border: 1px solid black;
      overflow: auto;
      width: 500px;
      height: 150px }
p { border: 1px dashed red;
    width: 400px;
    height: 300px;
    margin-top: 10px;
    margin-left: 10px }
</style>
</head>
<body>
<h3>Свойство overflow:auto</h3>
<div>
<p>
B уездном городе N было так много парикмахерских заведений и бюро
похоронных процессий, что казалось, жители города рождаются лишь
затем, чтобы побриться, остричься, освежить голову вежеталем и
сразу же умереть. А на самом деле в уездном городе N люди рождались,
брились и умирали довольно редко. Жизнь города N была тишайшей.
</p>
</div>
</body>
</html>
Результат применения свойства overflow в значении auto
Рис. 4.5  Результат применения свойства overflow в значении auto.

Управление видимостью.

С помощью CSS-свойства может быть задана видимость структурного блока, то есть, виден или не виден будет блок пользователю. Таким CSS-свойством является свойство visibility. В соответствии со своим назначением оно может принимать следующие значения:

  • visible — при этом значении структурный блок является видимым.
  • hidden — при таком значении весь структурный блок становится невидимым и не отображается.

Пример использования (рис. 4.6)

<html>
<head>
<title>
Демонстрация использования CSS-свойства visibility
</title>
<style type="text/css">
p
  {
  visibility: visible;
  border: 1px solid red
  }
p.hidden
  {
  visibility: hidden;
  }
</style>
</head>
<body>
<h3 align="center">
Свойство visibility:hidden
</h3>
<p>
B уездном городе N было так много парикмахерских заведений и бюро
похоронных процессий, что казалось, жители города рождаются лишь
затем, чтобы побриться, остричься, освежить голову вежеталем и
сразу же умереть. А на самом деле в уездном городе N люди рождались,
брились и умирали довольно редко. Жизнь города N была тишайшей.
</p>
<p class="hidden">
Вопросы любви и смерти не волновали Ипполита Матвеевича Воробьянинова,
хотя этими вопросами по роду своей службы он ведал с девяти утра до
пяти вечера ежедневно с получасовым перерывом для завтрака.
</p>
<p>
Хотя похоронных депо было множество, но клиентура у них была небогатая.
"Милости просим" лопнуло еще за три года до того, как Ипполит Матвеевич
осел в городе N, а мастер Безенчук пил горькую и даже однажды пытался
заложить в ломбарде свой лучший выставочный гроб.
</p>
<p>
Люди в городе N умирали редко, и Ипполит Матвеевич знал это лучше кого
бы то ни было, потому что служил в загсе, где ведал столом регистрации
смертей и браков.
</p>
</body>
</html>
Демонстрация использования CSS-свойства visibility в значении hidden
Рис. 4.6  Демонстрация использования CSS-свойства visibility в значении hidden.

Отображение списков средствами языка CSS2.

Возможности языка CSS2 позволяют и для списков задавать стилевые настройки. При этом для HTML-элементов ul и ol могут быть определены следующие свойства:

  • list-style-type задает тип маркера или нумерацию элементов списка. Это тип выбирается из стандартных, предусмотренных в CSS2 маркеров;
  • list-style-image позволяет использовать изображения, располагающиеся во внешних графических файлах, в качестве маркеров (по умолчанию имеет значение none);
  • list-style-position указывает положение маркера в списке, т.е. будет он отображен в составе элемента списка или выдвинутым влево от него.

Свойство list-style-type определяет тип маркера или нумерацию элементов списка в том случае, если для этих целей не используются изображения (list-style-image: none), или они по каким-либо причинам недоступны (например, неправильно указан их URL-адрес). В качестве значений для свойства list-style-type могут применяться следующие ключевые слова:

  • none — вообще никакой маркер не отображается (значение по умолчанию);
  • disc — в качестве маркера используется закрашенный кружок;
  • circle — в качестве маркера используется незакрашенный кружок (окружность);
  • square — маркер имеет вид закрашенного квадратика;
  • decima — задает нумерацию списка арабскими цифрами;
  • lower-roman — задает нумерацию списка строчными римскими цифрами;
  • upper-roman — нумерация будет осуществляться прописными римскими цифрами;
  • lower-alpha — нумерация будет осуществляться латинскими строчными буквами;
  • upper-alpha — для нумерации будут использоваться прописные латинские буквы.

Пример использования:

ul { color: green; list-style-type: disc }

Благодаря свойству list-style-image в качестве маркера для неупорядоченных списков (HTML-элемент ul) может использоваться графическое изображение. Значением этого свойства может быть либо ключевое слово none (при этом никакое изображение не используется, а применяется один из стандартных маркеров), либо URL-адрес файла, в котором изображение хранится:

ul { list-style-image: url(http://www.somehost.ru/img/marker.gif) }

В свою очередь, свойство list-style-position задает положение маркера относительно элемента списка. При этом возможны два варианта:

  • inside — маркер как бы встраивается в элемент списка и является его первым символом;
  • outside — маркер отображается несколько смещенным влево относительно элемента списка.

Демонстрация использования свойства list-style-position
Рис. 4.7  Демонстрация использования свойства list-style-position.

Наглядно разницу между ними можно увидеть на следующем примере (рис. 4.7):

<html>
<head>
<title>
Демонстрация использования CSS-свойства list-style-position
</title>
<style type="text/css">
ul { padding: 30px;
     border: 1px solid gray;
     font-family: "Arial";
     background-color: white }
body { text-align: center;
       background-color: lightgrey }
th { font-size: 14 pt }
</style>
</head>
<body>
<table>
<tr>
  <th>Список с inside-маркером</th>
  <th>Список с outside-маркером</th>
</tr>
<tr>
  <td>
  <ul style="list-style-position: inside">
    <h5 align="center">
    Haибoлee выдающиеся алгоритмы XX века
    </h5>
    <li>
    Так называемый алгоритм Монте-Карло. Используется для моделирования
    случайных процессов и решения задач, которые можно решить только
    приближенно.
    </li>
    <li>
    Симплекс-метод. Этот метод вообще является основой линейного
    программирования.
    </li>
    <li>
    Алгоритм быстрого преобразования Фурье. Возможно наиболее широко
    применямый алгоритм. Разбивает волну на периодические компоненты.
    </li>
  </ul>
  </td>
  <td>
  <ul style="list-style-position: outside">
    <h5 align="center">
    Haибoлee выдающиеся алгоритмы XX века
    </h5>
    <li>
    Так называемый алгоритм Монте-Карло. Используется для моделирования
    случайных процессов и решения задач, которые можно решить только
    приближенно.
    </li>
    <li>
    Симплекс-метод. Этот метод вообще является основой линейного
    программирования.
    </li>
    <li>
    Алгоритм быстрого преобразования Фурье. Возможно наиболее широко
    применямый алгоритм. Разбивает волну на периодические компоненты.
    </li>
  </ul>
  </td>
</tr>
</table>
</body>
</html>

Задание формы курсора. Свойство cursor.

CSS-свойство cursor позволяет разработчику задавать для курсора свой авторский внешний вид. В качестве значения этого свойства указывается URL-адрес файла подключаемого курсора, причем задаваться может целый список URL-адресов, каждый из которых будет опрашиваться в порядке очередности, если с предыдущего URL-адреса подгрузить курсор не удастся.

Пример использования:

body { cursor: url("myfirst.cur"), url("mysecond.cur") }

В этом примере сначала будет попытка подключить курсор из файла myfirst.cur и если она окажется безуспешной, будет подключаться второй курсор. Примечательно, что форму курсора можно изменять в области каждого HTML-элемента индивидуально. Например, можно изменять его форму, если он находится над абзацем:

p { cursor: url("coolcur.cur") }

В качестве ключевых слов могут быть использованы следующие:

  • default — устанавливается курсор, используемый по умолчанию (обычно в виде стрелки);
  • crosshair — устанавливается курсор в виде крестика (пересечения двух отрезков);
  • text — такой вид курсор принимает, когда указывает на текст, который можно выделить;
  • pointer — такой вид курсор принимает, когда находится над ссылкой;
  • wait — курсор принимает вид песочных часов;
  • auto — вид курсора задается браузером автоматически от контекста.