Spec-Zone.ru › jQuery Mobile

Макет сетки

Макет сеткиверсия добавлена: 1.0

Описание: Многоколоночные макеты сетки

Использование многоколоночных макетов на мобильном устройстве обычно не рекомендуется из-за небольшой ширины экрана, но иногда вам может потребоваться разместить небольшие элементы рядом (например, кнопки или вкладки навигации).

Фреймворк jQuery Mobile предоставляет простой способ построения колонок на основе CSS с помощью соглашения о именовании стилей блоков, называемого ui-grid.

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

  • двухколоночный (используя класс ui-grid-a)
  • трехколоночный (используя класс ui-grid-b)
  • четырехколоночный (используя класс ui-grid-c)
  • пятиколоночный (используя класс ui-grid-d)

Сетки имеют ширину 100%, полностью невидимы (без границ или фонов) и не имеют отступов или отступов, поэтому они не должны влиять на стили элементов, размещенных внутри них.

Внутри контейнера сетки дочерние элементы получают ui-block-a/b/c/d/e в последовательном порядке, что делает каждый элемент "блока" плавающим рядом, образуя сетку. Класс ui-block-a фактически очищает плавающие элементы, что позволит начать новую строку (см. сетки с несколькими строками ниже).

Двухколоночные сетки

Для построения двуколоночного (50/50%) макета начните с контейнера с class ui-grid-a, и добавьте два дочерних контейнера внутри него, помеченных классом ui-block-a для первого столбца и ui-block-b для второго:

<div class="ui-grid-a">
  <div class="ui-block-a"><strong>I'm Block A</strong> and text inside will wrap</div>
  <div class="ui-block-b"><strong>I'm Block B</strong> and text inside will wrap</div>
</div><!-- /grid-a -->

Вышеприведенный разметка создает следующий макет содержимого:

Как вы видите выше, блоки сетки по умолчанию не имеют визуального оформления; они просто отображают содержимое рядом.

Классы сетки могут быть применены к любому контейнеру. В этом следующем примере мы добавляем ui-grid-a к fieldset, и применяем классы ui-block к контейнеру каждой из двух кнопок внутри, чтобы растянуть их на 50% ширины экрана:

<fieldset class="ui-grid-a">
  <div class="ui-block-a"><button type="submit" data-theme="a">Cancel</button></div>
  <div class="ui-block-b"><button type="submit" data-theme="b">Submit</button></div>
</fieldset>

Обратите внимание, что фреймворк добавляет левые и правые отступы к кнопкам в сетке. Для одной кнопки вы можете использовать контейнер с классом ui-grid-solo и обернуть кнопку в div с классом ui-block-a, как в примере ниже. Таким образом, кнопка получит те же отступы.

<div class="ui-grid-a">
  <div class="ui-block-a"><button type="button" data-theme="a">Previous</button></div>
  <div class="ui-block-b"><button type="button" data-theme="a">Next</button></div>
</div>
<div class="ui-grid-solo">
  <div class="ui-block-a"><button type="button" data-theme="b">More</button></div>
</div>

Классы темы (а не атрибуты data-theme) из системы оформления могут быть добавлены к элементу, включая сетки. В блоках ниже мы добавляем два класса: ui-bar для добавления стандартного отступа для панели и ui-bar-a для применения фонового и шрифтового оформления для темы инструментальной панели "a". Для иллюстрации также добавлен атрибут style="height:120px" для каждого элемента сетки, чтобы установить для каждого стандартную высоту.

Трехколоночные сетки

Другая конфигурация макета сетки использует class=ui-grid-b в родительском элементе и 3 дочерних контейнера, каждый со своим соответствующим классом ui-block-a/b/c, чтобы создать трехколоночный макет (33/33/33%). Примечание: эти блоки также стилизованы с помощью классов темы, поэтому макет сетки хорошо виден.

<div class="ui-grid-b">
  <div class="ui-block-a">Block A</div>
  <div class="ui-block-b">Block B</div>
  <div class="ui-block-c">Block C</div>
</div><!-- /grid-b -->

Это создаст сетку 33/33/33% для нашего содержимого.

И пример трехколоночной сетки с кнопками внутри:

Четырехколоночные сетки

Четырехколоночная сетка 25/25/25/25% создается путем указания class=ui-grid-c в родительском элементе и добавления четвертого блока. Примечание: эти блоки также стилизованы с помощью классов темы, поэтому макет сетки хорошо виден.

Пятиколоночные сетки

Пятиколоночная сетка 20/20/20/20/20% создается путем указания class=ui-grid-d в родительском элементе и добавления пятого блока. Примечание: эти блоки также стилизованы с помощью классов темы, поэтому макет сетки хорошо виден.

Сетки с несколькими строками

Сетки предназначены для обертывания нескольких элементов в строки. Например, если вы укажете трехколоночную сетку (ui-grid-b) в контейнере, который имеет девять дочерних блоков, он обернется в 3 строки по 3 элемента в каждой. Существует правило CSS для очистки плавающих элементов и начала новой строки, когда появляется class=ui-block-a, поэтому убедитесь, что вы назначаете классы блоков в повторяющейся последовательности (a, b, c, a, b, c и т. д.), которая соответствует типу сетки:

Сетки в панелях инструментов

Сетки полезны для создания макетов внутри панели инструментов. Вот подвал с четырехколоночной сеткой.

Пример:

Базовый пример макета сетки

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>grid-layout demo</title>
  <link rel="stylesheet" href="//code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css">
  <script src="//code.jquery.com/jquery-1.10.2.min.js"></script>
  <script src="//code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
</head>
<body>
 
<div data-role="page" id="page1">
  <div data-role="header">
    <h1>Grid Layout Example</h1>
  </div>
  <div role="main" class="ui-content">
    <div class="ui-grid-a">
      <div class="ui-block-a"><strong>I'm Block A</strong> and text inside will wrap.</div>
      <div class="ui-block-b"><strong>I'm Block B</strong> and text inside will wrap.</div>
    </div><!-- /grid-a -->
  </div>
</div>
 
</body>
</html>

Демо:

© The jQuery Foundation and other contributors
Licensed under the MIT License.
https://api.jquerymobile.com/grid-layout

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API