Page 251 - Сила CSS3 Освой новейший стандарт
P. 251

Создание многостолбцовых макетов без плавающих полей  •  251

          сОздание мнОгОстОлбцОвых макетОв без Плавающих

          ПОлей и ПОзициОнирОвания

          Модель гибкого поля представляет собой специальную систему создания много-
          столбцовых и многострочных макетов, кардинально отличающуюся от макетов с
          плавающими полями и абсолютного позиционирования. Принцип модели гибкого
          поля намного удобнее изучать на реальных примерах, поэтому загрузите файлы
          упражнений для этой главы с веб-сайта http://www.stunningcss3.com и откройте
          файл flex_box_start.html в любом редакторе кода.

          Вы увидите ту же самую страницу вымышленной пекарни, с которой мы работали
          в главе 6. Правда, я убрала медиазапросы, чтобы немного упростить пример, и из-
          бавилась от правил CSS, с помощью которых у нас создавались соседние столбцы. Все
          блоки div выстроены вертикально, один над другим, и точно так же по умолчанию
          располагаются элементы уровня блока (рис. 7.1). С помощью модели гибкого поля
          мы можем сделать так, чтобы они выводились горизонтально.
          Первым делом, для того чтобы выстроить блоки горизонтально, нужно присвоить
          свойству display соответствующего контейнера значение box — новое значение
          CSS3 для старого доброго свойства display. Блок div с именем content — это кон-
          тейнер для двух основных столбцов, div-блоков content-main и content-secondary;
          обрамляющего блока div на странице из главы 6 не было, но здесь я добавила его,
          так как он необходим для реализации модели гибкого поля. Среди стилей внутри
          элемента head страницы вставьте новое правило для #content:

          #content {
              display: -moz-box;
              display: -o-box;
              display: -webkit-box;
              display: box;
          }

          Когда значение display равно box, блок div превращается в элемент, называемый в
          спецификациях W3C гибким полем (flexible box), или зачастую просто полем (box);
          кроме того, так вы сообщаете браузеру, что желаете для этого div и его потомков
          включить модель гибкого поля. Firefox и браузеры на базе Webkit (единственные
          браузеры, поддерживающие в настоящий момент модель гибкого поля) используют
          значения -mox-box и -webkit-box, соответственно. Пока что ни один браузер не под-
          держивает значение box без префикса, а Opera не распознает даже -o-box, но эти свой-
          ства, тем не менее, необходимо добавлять для обеспечения совместимости в будущем.


          дополнительные оБрамляющие Блоки dIv
            Тот факт, что мне пришлось добавить еще один обрамляющий блок div вокруг div-блоков
            content-main и content-secondary, иллюстрирует один из специфических недостатков моде-



                                                        www.trk.kg
   246   247   248   249   250   251   252   253   254   255   256