Flex что это

article-main-image

Flexbox по праву можно назвать удачной попыткой решения огромного спектра проблем при построении лейаутов в css. Но прежде чем перейти к его описанию, давайте выясним, что же не так со способами верстки, которыми мы пользуемся сейчас?

Любой верстальщик знает несколько путей выровнять что-либо по вертикали или сделать 3-х колоночный макет с резиновой средней колонкой. Но давайте признаем, что все эти способы довольно странные, похожи на хак, подходят не во всех случаях, сложны для восприятия и не работают при несоблюдении определенных магических условий, которые сложились исторически.

Случилось так потому, что html и css развивались эволюционно. В начале веб-страницы были похожи на однопоточные текстовые документы, чуть позже разбиение страницы на блоки делали таблицами, затем стало модным верстать float-ами, а после официальной смерти ie6 добавились еще и приемы с inline-block. В итоге мы получили в наследство гремучую смесь всех этих приемов, используемую для построения лейаутов 99,9% всех существующих веб-страниц.


Спецификация CSS Flexible Box Layout Module (в народе Flexbox) призвана кардинально изменить ситуацию в лучшую сторону при решении огромного количества задач. Flexbox позволяет контролировать размер, порядок и выравнивание элементов по нескольким осям, распределение свободного места между элементами и многое другое.

Основные преимущества flexbox

  1. Все блоки очень легко делаются “резиновым”, что уже следует из названия “flex”. Элементы могут сжиматься и растягиваться по заданным правилам, занимая нужное пространство.
  2. Выравнивание по вертикали и горизонтали, базовой линии текста работает шикарно.
  3. Расположение элементов в html не имеет решающего значения. Его можно поменять в CSS. Это особенно важно для некоторых аспектов responsive верстки.
  4. Элементы могут автоматически выстраиваться в несколько строк/столбцов, занимая все предоставленное место.
  5. Множество языков в мире используют написание справа налево rtl (right-to-left), в отличии от привычного нам ltr (left-to-right). Flexbox адаптирован для этого. В нем есть понятие начала и конца, а не права и лева. Т.е. в браузерах с локалью rtl все элементы будут автоматически расположены в реверсном порядке.
  6. Синтаксис CSS правил очень прост и осваивается довольно быстро.

Поддержка браузерами

Поддержка браузерами пока неполная (2014). Виноват в этом в основном Internet explorer, который поддерживает спецификацию 2011 года только начиная с 10 версии, . Не смотря на это, я бы порекомендовал обратить внимание на обширность поддержки всеми остальными мобильными и десктопными браузерами! Тут все прекрасно. Если Вам нужна мобильная версия сайта или web-based приложение, то его уже можно (а, возможно, и нужно) делать, используя все преимущества flexbox!

Немного истории

  • 2008 – CSS Working Group обсуждает предложение “Flexible Box Model” на основе XUL (XML User Interface Language – язык разметки в приложениях Mozilla) and XAML (Extensible Application Markup Language – язык разметки в приложениях Microsoft).
  • 2009 – опубликован черновик “Flexible Box Layout Module”. Chrome и Safari добавляет частичную поддержку, пока Mozilla начинает поддерживать XUL-подобный синтаксис, известный как “Flexbox 2009”.
  • 2011 – Tab Atkins берется за развитие Flexbox и публикует 2 черновика. В этих черновиках синтаксис изменен значительно. Chrome, Opera и IE 10 внедряют поддержку этого синтаксиса. Он известен под названием “flexbox 2011”
  • 2012 – Синтаксис снова немного изменен и уточнен. Спецификация переходит в статус Candidate Recommendation и известна под названием “flexbox 2012”. Opera внедряет беспрефиксную поддержку, Chrome поддерживает текущую спецификацию с префиксами, а Mozilla без них, IE10 добавляет поддержку устаревающего “flexbox 2011” синтаксиса.
  • 2014 – все новые браузеры поддерживают последнюю спецификацию (включая IE 11)

Мы будем рассматривать все примеры на основе новой спецификации. Если вам нужна поддержка старых Сhrome, FF и IE10, лучше использовать autoprefixer от Андрея Ситника, который автоматически добавит css правила и вендорные префиксы для устаревших спецификаций.

Начинаем погружение

Flexbox определяет набор CSS свойств для контейнера (flex-контейнер) и его дочерних элементов (flex-блоков). Первое, что нужно сделать – это указать контейнеру display:flex или display:inline-flex.

HTML

<div class="my-flex-container">  <div class="my-flex-block">item1</div>  <div class="my-flex-block">item2</div>  <div class="my-flex-block">item3</div> </div> 

CSS

.my-flex-container{  display: flex; } 

Основные свойства flex-контейнера. Главная и поперечная ось.

Одним из основных понятий в fleхbox являются оси.

  • Главной осью flex-контейнера является направление, в соответствии с которым располагаются все его дочерние элементы.
  • Поперечной осью называется направление, перпендикулярное главной оси.

Главная ось в ltr локали по умолчанию располагается слева направо. Поперечная – сверху вниз. Направление главной оси flex-контейнера можно задавать, используя базовое css свойство flex-direction.

flex-direction – направление главной оси

flexbox-main-columnflexbox-main-row

Доступные значения flex-direction:

  • row (значение по умолчанию) : слева направо (в rtl справа налево)
  • row-reverse: справа налево (в rtl слева направо)
  • column: сверху вниз
  • column-reverse: снизу вверх

justify-content – выравнивание по главной оси.

Css свойство justify-content определяет то, как будут выровнены элементы вдоль главной оси.

Доступные значения justify-content:

  • flex-start (значение по умолчанию) : блоки прижаты к началу главной оси

  • flex-end: блоки прижаты к концу главной оси
  • center: блоки располагаются в центре главной оси
  • space-between: первый блок располагается в начале главной оси, последний блок – в конце, все остальные блоки равномерно распределены в оставшемся пространстве.
  • space-around: все блоки равномерно распределены вдоль главной оси, разделяя все свободное пространство поровну.

flex-justify-content

align-items – выравнивание по поперечной оси.

Css свойство align-items определяет то, как будут выровнены элементы вдоль поперечной оси.

Доступные значения align-items:

  • flex-start: блоки прижаты к началу поперечной оси
  • flex-end: блоки прижаты к концу поперечной оси
  • center: блоки располагаются в центре поперечной оси
  • baseline: блоки выровнены по их baseline
  • stretch (значение по умолчанию) : блоки растянуты, занимая все доступное место по поперечной оси, при этом все же учитываются min-width/max-width, если таковые заданы.

flex-align-items

СSS свойства flex-direction
, justify-content, align-items должны применяться непосредственно к flex-контейнеру, а не к его дочерним элементам.

Демо основных свойств flex-контейнера

Оси и выравнивания по ним – это основы flex. Расслабьтесь, покликайте по демке и используйте ее, если нужно будет освежить в памяти.

flexbox demo

Многострочная организация блоков внутри flex-контейнера.

flex-wrap

Все примеры, которые мы приводили выше, были построены с учетом однострочного (одностолбцового) расположения блоков. Надо сказать, что по умолчанию flex-контейнер всегда будет располагать блоки внутри себя в одну линию. Однако, спецификацией также поддерживается многострочный режим. За многострочность внутри flex-контейнера отвечает CSS свойство flex-wrap.

Доступные значения flex-wrap:

  • nowrap (значение по умолчанию) : блоки расположены в одну линию слева направо (в rtl справа налево)
  • wrap: блоки расположены в несколько горизонтальных рядов (если не помещаются в один ряд). Они следуют друг за другом слева направо (в rtl справа налево)
  • wrap-reverse: то-же что и wrap, но блоки располагаются в обратном порядке.

flex-flow – удобное сокращение для flex-direction + flex-wrap

По сути,flex-flow предоставляет возможность в одном свойстве описать направление главной и многострочность поперечной оси. По умолчанию flex-flow: row nowrap.

flex-flow: <‘flex-direction’> || <‘flex-wrap’>

CSS

/* т.е. ... */  .my-flex-block{  flex-direcrion:column;  flex-wrap: wrap; }  /* это то же самое, что ... */  .my-flex-block{  flex-flow: column wrap; } 

align-content

Существует также свойство align-content, которое определяет то, каким образом образовавшиеся ряды блоков будут выровнены по вертикали и как они поделят между собой все пространство flex-контейнера.

Важно: align-content работает только в многострочном режиме (т.е. в случае flex-wrap:wrap; или flex-wrap:wrap-reverse;)

Доступные значения align-content:

  • flex-start: ряды блоков прижаты к началу flex-контейнера.
  • flex-end: ряды блоков прижаты к концу flex-контейнера
  • center: ряды блоков находятся в центре flex-контейнера
  • space-between: первый ряд блоков располагается в начале flex-контейнера, последний ряд блоков блок – в конце, все остальные ряды равномерно распределены в оставшемся пространстве.
  • space-around: ряды блоков равномерно распределены в от начала до конца flex-контейнера, разделяя все свободное пространство поровну.
  • stretch (значение по умолчанию): Ряды блоков растянуты, дабы занять все имеющееся пространство.

flex-align-content

СSS свойства flex-wrap и align-content должны применяться непосредственно к flex-контейнеру, а не к его дочерним элементам.

Демо свойств многострочности в flex

flexbox demo

CSS правила для дочерних элементов flex-контейнера (flex-блоков)

flex-basis – базовый размер отдельно взятого flex-блока

Задает изначальный размер по главной оси для flex-блока до того, как к нему будут применены преобразования, основанные на других flex-факторах. Может быть задан в любых единицах измерения длинны (px, em, %, …) или auto(по умолчанию). Если задан как auto – за основу берутся размеры блока (width, height), которые, в свою очередь, могут зависеть от размера контента, если не указанны явно.

flex-grow – “жадность” отдельно взятого flex-блока

Определяет то, на сколько отдельный flex-блок может быть больше соседних элементов, если это необходимо. flex-grow принимает безразмерное значение ( по умолчанию 0)

Пример 1:

  • Если все flex-блоки внутри flex-контейнера имеют flex-grow:1, то они будут одинакового размера
  • Если один из них имеет flex-grow:2, то он будет в 2 раза больше, чем все остальные

Пример 2:

  • Если все flex-блоки внутри flex-контейнера имеют flex-grow:3, то они будут одинакового размера
  • Если один из них имеет flex-grow:12, то он будет в 4 раза больше, чем все остальные

Т.е абсолютное значение flex-grow не определяет точную ширину. Оно определяет его степень “жадности” по отношению к другим flex-блокам того же уровня.

flex-shrink – фактор “сжимаемости” отдельно взятого flex-блока

Определяет, насколько flex-блок будет уменьшаться относительно соседних эдементов внутри flex-контейнера в случае недостатка свободного места. По умолчанию равен 1.

flex – короткая запись для свойств flex-grow, flex-shrink и flex-basis

flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]

CSS

/* т.е. ... */  .my-flex-block{  flex-grow:12;  flex-shrink:3;  flex basis: 30em; }  /* это то же самое, что ... */  .my-flex-block{  flex: 12 3 30em; } 

Демо для flex-grow, flex-shrink и flex-basis

flexbox demo

align-self – выравнивание отдельно взятого flex-блока по поперечной оси.

Делает возможным переопределять свойство flex-контейнера align-items для отдельного flex-блока.

Доступные значения align-self (те же 5 вариантов, что и для align-items)


  • flex-start: flex-блок прижат к началу поперечной оси
  • flex-end: flex-блок прижат к концу поперечной оси
  • center: flex-блок располагаются в центре поперечной оси
  • baseline: flex-блок выравнен по baseline
  • stretch (значение по умолчанию) : flex-блок растянут, чтобы занять все доступное место по поперечной оси, при этом учитываются min-width/max-width, если таковые заданы.

order – порядок следования отдельно взятого flex-блока внутри flex-контейнера.

По умолчанию все блоки будут следовать друг за другом в порядке, заданном в html. Однако этот порядок можно изменить с помощью свойства order. Оно задается целым числом и по умолчанию равно 0.

Значение order не задает абсолютную позицию элемента в последовательности. Оно определяет вес позиции элемента.

HTML

<div class="my-flex-container">  <div class="my-flex-block" style="order: 5" >item1</div>  <div class="my-flex-block" style="order: 10">item2</div>  <div class="my-flex-block" style="order: 5" >item3</div>  <div class="my-flex-block" style="order: 5" >item4</div>  <div class="my-flex-block" style="order: 0" >item5</div> </div> 

В данном случае, блоки будут следовать один за другим вдоль главной оси в следующем порядке: item5, item1, item3, item4, item2

Демо для align-self и order

flexbox demo

margin: auto по вертикали. Мечты сбываются!

Flexbox можно любить хотя бы за то, что привычное всем выравнивание по горизонтали через margin:auto здесь работает и для вертикали!

.my-flex-container {  display: flex;  height: 300px; /* Или что угодно */ }  .my-flex-block {  width: 100px; /* Или что угодно */  height: 100px; /* Или что угодно */  margin: auto; /* Магия! Блок отцентрирован по вертикали и горизонтали! */ } 

Вещи, которые следует помнить

  1. Не следует использовать flexbox там, где в этом нет необходимости.
  2. Определение регионов и изменение порядка контента во многих случаях все-таки полезно делать зависимым от структуры страницы. Продумывайте это.
  3. Разберитесь в flexbox и знайте его основы. Так намного легче достичь ожидаемого результата.
  4. Не забывайте про margin-ы. Они учитываются при установке выравнивания по осям. Также важно помнить, что margin-ы в flexbox не “коллапсятся”, как это происходит в обычном потоке.
  5. Значение float у flex-блоков не учитывается и не имеет значения. Это, наверно, как-то можно использовать для graceful degradation при переходе на flexbox.
  6. flexbox очень хорошо подходит для верстки веб-компонентов и отдельных частей веб-страниц, но показал себя не с лучшей стороны при верстке базовых макетов (расположение article, header, footer, navbar и т.п.). Это все еще спорный момент, но эта статья довольно убедительно показывает недостатки xanthir.com/blog/b4580

В заключение

Я думаю, что flexbox, конечно же, не вытеснит все остальные способы верстки, но, безусловно, в ближайшее время займет достойную нишу при решении огромного количества задач. И уж точно, пробовать работать с ним нужно уже сейчас. Одна из следующих статей будет посвящена конкретным примерам работы с flex-версткой. Подписывайтесь на новости 😉

html5.by

Что такое флекс?

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

В чём особенность системы флекс?

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

Очень эффективна и для придания эластичности сухожилий такая система, как флекс. Упражнения, включенные в нее, помогают растянуть не только мышцы, но также и связки, а их ткань, как известно, менее податлива. Эти действия способствуют подтягиванию тела, появляется лёгкость и снимается психологическое напряжение.

Кому полезен комплекс?

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

Полезен комплекс флекс и тем, кто нередко испытывает эмоциональную нагрузку. Дело в том, что во время стресса мышцы шеи находятся в напряжении. В результате нарушается кровоснабжение, и начинается кислородное голодание мозга. Как следствие, приходят головные боли, постоянная усталость, раздражительность. Нарушение кровоснабжения – одна из причин, вызывающих остеохондроз позвоночника.

Флекс рекомендуется не только для начинающих, но и тем, кто активно занимается спортом. Многие из них пренебрегают упражнениями на растяжку. Однако именно эти движения активизируют перед тренировкой работу сердца и дыхательной системы, улучшают обмен веществ и подготавливают мышцы к активной работе во время занятий.

В чём преимущества программы флекс?

Что такое флекс? Главным принципом данной системы является гармоничное воздействие на тело. Медленные упражнения растягивают мышцы, что высвобождает накапливающуюся в них молочную кислоту. Именно она вызывает скованность, напряжение, боль и усталость. В результате использования программы мышцы становятся упругими и гладкими. Увеличивается сила и гибкость, улучшается осанка.

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

Те, кто интересуется новшествами в области фитнеса, часто задаются вопросом: «Что такое флекс?» Это упражнения в медленном темпе. Определённый дыхательный ритм позволяет расслабиться. Именно глубокое дыхание высвобождает окситоцин, ответственный за стимуляцию положительных ощущений. Другими словами, флекс благотворно сказывается на настроении.

В результате:

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

Как правильно заниматься?

Флекс может быть прекрасным дополнением к спортивному занятию и самостоятельной тренировкой. Очень удобно работать с методикой флекс – упражнения, которые в нее включены, не требуют специальной подготовки и доступны всем. Для занятий подходит спортивная облегающая одежда и обувь на мягкой подошве.

Желающим сбросить вес рекомендуется сбалансированное питание, а также ограничение потребления высококалорийных продуктов (жирное, мучное, сладкое). При комплексном подходе уже через пару недель заметно будет уменьшение объёмов талии и бёдер.

Регулярность занятий зависит от цели тренировок. Для оздоровления достаточно 2-3 занятий в неделю. Если, например, требуется сесть на шпагат или избавиться от лишнего веса, тренироваться можно и 2 раза в день. Главное – прислушиваться к своему телу: не стоит продолжать занятия несмотря на боль.

Упражнения

Упражнения флекс при остеохондрозе:

  • Лечь на живот, приподнять руки и ноги. Удерживать 15-20 секунд.
  • Лечь на спину, поднимать прямо ноги над полом. В такой позе надо пробыть не менее 15-20 секунд.
  • Сесть на пол, руки упереть в пол и приподнимать таз. Общая продолжительность – 15-20 секунд.

Упражнения флекс для живота:

  • Лечь на спину, ноги в коленях согнуты, руки – вдоль тела. Теперь верхние конечности надо поднять над полом и потягиваться ими. Ступни прижать к полу. Удерживать положение 15-20 секунд.
  • Лечь на спину, прижать руки к туловищу по бокам. Ноги сведены вместе. Из этого положения приподнимаем одновременно ноги над полом и голову. Ноги можно согнуть в коленях (второй вариант упражнения).

Программа флекс рассчитана на различные группы мышц, повышает тонус и делает их более эластичными. Главное, что она доступна и полезна начинающим и тем, кто активно тренируется. Занятия не только дадут красивое тело, но и улучшат настроение, научат терпению и спокойствию. И, конечно, повысят самооценку.

fb.ru

Что такое flexbox

  • Содержание:
  • 1. Основные понятия
  • 2. Flex-контейнер
  • 3. Flex-элементы
  • 4. Порядок отображения flex-элементов и ориентация
  • 4.1. Направление главной оси: flex-direction
  • 4.2. Управление многострочностью flex-контейнера: flex-wrap
  • 4.3. Краткая запись направления и многострочности: flex-flow
  • 4.4. Порядок отображения flex-элементов: order
  • 5. Гибкость flex-элементов
  • 5.1. Задание гибких размеров одним свойством: flex
  • 5.2. Коэффициент роста: flex-grow
  • 5.3. Коэффициент сжатия: flex-shrink
  • 5.4. Базовый размер: flex-basis
  • 6. Выравнивание
  • 6.1. Выравнивание по главной оси: justify-content
  • 6.2. Выравнивание по поперечной оси: align-items и align-self
  • 6.3. Выравнивание строк flex-контейнера: align-content

Поддержка браузерами

IE: 11.0, 10.0 -ms-
Firefox: 28.0, 18.0 -moz-
Chrome: 29.0, 21.0 -webkit-
Safari: 6.1 -webkit-
Opera: 12.1 -webkit-
iOS Safari: 7.0 -webkit-
Opera Mini: 8
Android Browser: 4.4, 4.1 -webkit-
Chrome for Android: 44

1. Основные понятия

box-model
Рис. 1. Модель flexbox

Для описания модуля Flexbox используется определенный набор терминов. Значение flex-flow и режим записи определяют соответствие этих терминов физическим направлениям: верх / право / низ / лево, осям: вертикальная / горизонтальная и размерам: ширина / высота.

Главная ось (main axis) — ось, вдоль которой выкладываются flex-элементы. Она простирается в основном измерении.

Main start и main end — линии, которые определяют начальную и конечную стороны flex-контейнера, относительно которых выкладываются flex-элементы (начиная с main start по направлению к main end).

Основной размер (main size) — ширина или высота flex-контейнера или flex-элементов, в зависимости от того, что из них находится в основном измерении, определяют основной размер flex-контейнера или flex-элемента.

Поперечная ось (cross axis) — ось, перпендикулярная главной оси. Она простирается в поперечном измерении.

Cross start и cross end — линии, которые определяют начальную и конечную стороны поперечной оси, относительно которых выкладываются flex-элементы.

Поперечный размер (cross size) — ширина или высота flex-контейнера или flex-элементов, в зависимости от того, что находится в поперечном измерении, являются их поперечным размером.

Flex что это
Рис. 2. Режим строки и колонки

2. Flex-контейнер

Flex-контейнер устанавливает новый гибкий контекст форматирования для его содержимого. Flex-контейнер не является блочным контейнером, поэтому для дочерних элементов не работают такие CSS-свойства, как float, clear, vertical-align. Также, на flex-контейнер не оказывают влияние свойства column-*, создающие колонки в тексте и псевдоэлементы ::first-line и ::first-letter.

Модель flexbox-разметки связана с определенным значением CSS-свойства display родительского html-элемента, содержащего внутри себя дочерние блоки. Для управления элементами с помощью этой модели нужно установить свойство display следующим образом:

.flex-container {  /*генерирует flex-контейнер уровня блока*/  display: -webkit-flex;   display: flex;   }  .flex-container {  /*генерирует flex-контейнер уровня строки*/   display: -webkit-inline-flex;   display: inline-flex;   }

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

display-flex
Рис. 3. Выравнивание элементов в модели flexbox

Если родительский блок содержит текст или изображения без оберток, они становятся анонимными flex-элементами. Текст выравнивается по верхнему краю блока-контейнера, а высота изображения становится равной высоте блока, т.е. оно деформируется.

3. Flex-элементы

Flex-элементы — блоки, представляющие содержимое flex-контейнера в потоке. Flex-контейнер устанавливает новый контекст форматирования для своего содержимого, который обуславливает следующие особенности:

  • Для flex-элементов блокируется их значение свойства display. Значение display: inline-block; и display: table-cell; вычисляется в display: block;.
  • Пустое пространство между элементами исчезает: оно не становится своим собственным flex-элементом, даже если межэлементный текст обернут в анонимный flex-элемент. Для содержимого анонимного flex-элемента невозможно задать собственные стили, но оно будет наследовать их (например, параметры шрифта) от flex-контейнера.
  • Абсолютно позиционированный flex-элемент не участвует в компоновке гибкого макета.
  • Поля margin соседних flex-элементов не схлопываются.
  • Процентные значения margin и padding вычисляются от внутреннего размера содержащего их блока.
  • margin: auto; расширяются, поглощая дополнительное пространство в соответствующем измерении. Их можно использовать для выравнивания или раздвигания смежных flex-элементов.
  • Автоматический минимальный размер flex-элементов по умолчанию является минимальным размером его содержимого, то есть min-width: auto;. Для контейнеров с прокруткой автоматический минимальный размер обычно равен нулю.

4. Порядок отображения flex-элементов и ориентация

Содержимое flex-контейнера можно разложить в любом направлении и в любом порядке (переупорядочение flex-элементов внутри контейнера влияет только на визуальный рендеринг).

4.1. Направление главной оси: flex-direction

Свойство относится к flex-контейнеру. Управляет направлением главной оси, вдоль которой укладываются flex-элементы, в соответствии с текущим режимом записи. Не наследуется.

flex-direction
Значения:
row Значение по умолчанию, слева направо (в rtl справа налево). Flex-элементы выкладываются в строку. Начало (main-start) и конец (main-end) направления главной оси соответствуют началу (inline-start) и концу (inline-end) инлайн-оси (inline-axis).
row-reverse Направление справа налево (в rtl слева направо). Flex-элементы выкладываются в строку относительно правого края контейнера (в rtl — левого).
column Направление сверху вниз. Flex-элементы выкладываются в колонку.
column-reverse Колонка с элементами в обратном порядке, снизу вверх.
initial Устанавливает значение свойства в значение по умолчанию.
inherit Наследует значение свойства от родительского элемента.
Flex что это
Рис. 4. Свойство flex-direction для left-to-right языков

Синтаксис

.flex-container {  display: -webkit-flex;   -webkit-flex-direction: row-reverse;  display: flex;  flex-direction: row-reverse;  }

4.2. Управление многострочностью flex-контейнера: flex-wrap

Свойство определяет, будет ли flex-контейнер однострочным или многострочным, а также задает направление поперечной оси, определяющее направление укладки новых линий flex-контейнера.

По умолчанию flex-элементы укладываются в одну строку, вдоль главной оси. При переполнении они будут выходить за пределы ограничивающей рамки flex-контейнера. Свойство не наследуется.

flex-wrap
Значения:
nowrap Значение по умолчанию. Flex-элементы не переносятся, а располагаются в одну линию слева направо (в rtl справа налево).
wrap Flex-элементы переносятся, располагаясь в несколько горизонтальных рядов (если не помещаются в один ряд) в направлении слева направо (в rtl справа налево).
wrap-reverse Flex-элементы переносятся на новые линии, располагаясь в обратном порядке слева-направо, при этом перенос происходит снизу вверх.
initial Устанавливает значение свойства в значение по умолчанию.
inherit Наследует значение свойства от родительского элемента.
flex-wrap
Рис. 5. Управление многострочностью с помощью свойства flex-wrap для LTR-языков

Синтаксис

.flex-container {  display: -webkit-flex;   -webkit-flex-wrap: wrap;  display: flex;  flex-wrap: wrap;  }

4.3. Краткая запись направления и многострочности: flex-flow

Свойство позволяет определить направления главной и поперечной осей, а также возможность переноса flex-элементов при необходимости на несколько строк. Представляет собой сокращённую запись свойств flex-direction и flex-wrap. Значение по умолчанию flex-flow: row nowrap;. свойство не наследуется.

flex-flow
Значения:
направление Указывает направление главной оси. Значение по умолчанию row.
многострочность Задаёт многострочность поперечной оси. Значение по умолчанию nowrap.
initial Устанавливает значение свойства в значение по умолчанию.
inherit Наследует значение свойства от родительского элемента.

Синтаксис

.flex-container {  display: -webkit-flex;   -webkit-flex-flow: row wrap;   display: flex;  flex-flow: row wrap;  }

4.4. Порядок отображения flex-элементов: order

Свойство определяет порядок, в котором flex-элементы отображаются и располагаются внутри flex-контейнера. Применяется к flex-элементам. Свойство не наследуется.

Первоначально все flex-элементы имеют order: 0;. При указании значения от -1 для элемента он перемещается в начало сроки, значение 1 — в конец. Если несколько flex-элементов имеют одинаковое значение order, они будут отображаться в соответствии с исходным порядком.

order
Значения:
число Свойство задается целым числом, отвечающим за порядок отображения flex-элементов. Значение по умолчанию 0.
initial Устанавливает значение свойства в значение по умолчанию.
inherit Наследует значение свойства от родительского элемента.

Синтаксис

.flex-container {  display: -webkit-flex;  display: flex;  }  .flex-item {  -webkit-order: 1;  order: 1;  }
order
Рис. 6. Порядок отображения flex-элементов

5. Гибкость flex-элементов

Определяющим аспектом гибкого макета является возможность «сгибать» flex-элементы, изменяя их ширину / высоту (в зависимости от того, какой размер находится на главной оси), чтобы заполнить доступное пространство в основном измерении. Это делается с помощью свойства flex. Flex-контейнер распределяет свободное пространство между своими дочерними элементами (пропорционально их коэффициенту flex-grow) для заполнения контейнера или сжимает их (пропорционально их коэффициенту flex-shrink), чтобы предотвратить переполнение.

Flex-элемент будет полностью «негибок», если его значения flex-grow и flex-shrink равны нулю, и «гибкий» в противном случае.

5.1. Задание гибких размеров одним свойством: flex

Свойство является сокращённой записью свойств flex-grow, flex-shrink и flex-basis. Значение по умолчанию: flex: 0 1 auto;. Можно указывать как одно, так и все три значения свойств. Свойство не наследуется.

W3C рекомендует использовать сокращённую запись, так как она правильно сбрасывает любые неуказанные компоненты, чтобы подстроиться под типичное использование.

flex
Значения:
коэффициент растяжения Коэффициент увеличения ширины flex-элемента относительно других flex-элементов.
коэффициент сужения Коэффициент уменьшения ширины flex-элемента относительно других flex-элементов.
базовая ширина Базовая ширина flex-элемента.
auto Эквивалентно flex: 1 1 auto;.
none Эквивалентно flex: 0 0 auto;.
initial Устанавливает значение свойства в значение по умолчанию. Эквивалентно flex: 0 1 auto;.
inherit Наследует значение свойства от родительского элемента.

Синтаксис

.flex-container {  display: -webkit-flex;  display: flex;  }  .flex-item {  -webkit-flex: 3 1 100px;   -ms-flex: 3 1 100px;   flex: 3 1 100px;  }

5.2. Коэффициент роста: flex-grow

Свойство определяет коэффициент роста одного flex-элемента относительно других flex-элементов в flex-контейнере при распределении положительного свободного пространства. Если сумма значений flex-grow flex-элементов в строке меньше 1, они занимают менее 100% свободного пространства. Свойство не наследуется.

flex-grow
Значения:
число Положительное целое или дробное число, устанавливающее коэффициент роста flex-элемента. Значение по умолчанию 0.
initial Устанавливает значение свойства в значение по умолчанию.
inherit Наследует значение свойства от родительского элемента.
Flex что это
Рис. 7. Управление свободным пространством в панели навигации с помощью flex-grow

Синтаксис

.flex-container {  display: -webkit-flex;  display: flex;  }  .flex-item {  -webkit-flex-grow: 3;   flex-grow: 3;  }

5.3. Коэффициент сжатия: flex-shrink

Свойство указывает коэффициент сжатия flex-элемента относительно других flex-элементов при распределении отрицательного свободного пространства. Умножается на базовый размер flex-basis. Отрицательное пространство распределяется пропорционально тому, насколько элемент может сжаться, поэтому, например, маленький flex-элемент не уменьшится до нуля, пока не будет заметно уменьшен flex-элемент большего размера. Свойство не наследуется.

flex-shrink
Значения:
число Положительное целое или дробное число, устанавливающее коэффициент уменьшения flex-элемента. Значение по умолчанию 1.
initial Устанавливает значение свойства в значение по умолчанию.
inherit Наследует значение свойства от родительского элемента.
flex-shrink
Рис. 8. Сужение flex-элементов в строке

Синтаксис

.flex-container {  display: -webkit-flex;  display: flex;  }  .flex-item {  -webkit-flex-shrink: 3;   flex-shrink: 3;  }

5.4. Базовый размер: flex-basis

Свойство устанавливает начальный основной размер flex-элемента до распределения свободного пространства в соответствии с коэффициентами гибкости. Для всех значений, кроме auto и content, базовый гибкий размер определяется так же, как width в горизонтальных режимах записи. Процентные значения определяются относительно размера flex-контейнера, а если размер не задан, используемым значением для flex-basis являются размеры его содержимого. Не наследуется.

flex-basis
Значения:
auto Значение по умолчанию. Элемент получает базовый размер, соответствующий размеру его содержимого (если он не задан явно).
content Определяет базовый размер в зависимости от содержимого flex-элемента.
длина Базовый размер определяется так же, как для ширины и высоты. Задается в единицах длины.
initial Устанавливает значение свойства в значение по умолчанию.
inherit Наследует значение свойства от родительского элемента.

Синтаксис

.flex-container {  display: -webkit-flex;  display: flex;  }  .flex-item {  -webkit-flex-basis: 100px;   flex-basis: 100px;  }

6. Выравнивание

6.1. Выравнивание по главной оси: justify-content

Свойство выравнивает flex-элементы по главной оси flex-контейнера, распределяя свободное пространство, незанятое flex-элементами. Когда элемент преобразуется в flex-контейнер, flex-элементы по умолчанию сгруппированы вместе (если для них не заданы поля margin). Промежутки добавляются после расчета значений margin и flex-grow. Если какие-либо элементы имеют ненулевое значение flex-grow или margin: auto;, свойство не будет оказывать влияния. Свойство не наследуется.

justify-content
Значения:
flex-start Значение по умолчанию. Flex-элементы выкладываются в направлении, идущем от начальной линии flex-контейнера.
flex-end Flex-элементы выкладываются в направлении, идущем от конечной линии flex-контейнера.
center Flex-элементы выравниваются по центру flex-контейнера.
space-between Flex-элементы равномерно распределяются по линии. Первый flex-элемент помещается вровень с краем начальной линии, последний flex-элемент — вровень с краем конечной линии, а остальные flex-элементы на линии распределяются так, чтобы расстояние между любыми двумя соседними элементами было одинаковым. Если оставшееся свободное пространство отрицательно или в строке присутствует только один flex-элемент, это значение идентично параметру flex-start.
space-around Flex-элементы на линии распределяются так, чтобы расстояние между любыми двумя смежными flex-элементами было одинаковым, а расстояние между первым / последним flex-элементами и краями flex-контейнера составляло половину от расстояния между flex-элементами.
initial Устанавливает значение свойства в значение по умолчанию.
inherit Наследует значение свойства от родительского элемента.
justify-content
Рис. 9. Выравнивание элементов и распределение свободного пространства с помощью свойства justify-content

Синтаксис

.flex-container {  display: -webkit-flex;   -webkit-justify-content: flex-start;  display: flex;  justify-content: flex-start;  }

6.2. Выравнивание по поперечной оси: align-items и align-self

Flex-элементы можно выравнивать по поперечной оси текущей строки flex-контейнера. align-items устанавливает выравнивание для всех элементов flex-контейнера, включая анонимные flex-элементы. align-self позволяет переопределить это выравнивание для отдельных flex-элементов. Если любое из поперечных margin flex-элемента имеет значение auto, align-self не имеет никакого влияния.

6.2.1. Align-items

Свойство выравнивает flex-элементы, в том числе и анонимные flex-элементы по поперечной оси. Не наследуется.

align-items
Значения:
flex-start Верхний край flex-элемента помещается вплотную с flex-линией (или на расстоянии, с учетом заданных полей margin и рамок border элемента), проходящей через начало поперечной оси.
flex-end Нижний край flex-элемента помещается вплотную с flex-линией (или на расстоянии, с учетом заданных полей margin и рамок border элемента), проходящей через конец поперечной оси.
center Поля flex-элемента центрируется по поперечной оси в пределах flex-линии.
baseline Базовые линии всех flex-элементов, участвующих в выравнивании, совпадают.
stretch Если поперечный размер flex-элемента вычисляется как auto и ни одно из поперечных значений margin не равно auto, элемент растягивается. Значение по умолчанию.
initial Устанавливает значение свойства в значение по умолчанию.
inherit Наследует значение свойства от родительского элемента.
align-items
Рис. 10. Выравнивание элементов в контейнере по вертикали

Синтаксис

.flex-container {  display: -webkit-flex;  -webkit-align-items: flex-start;  display: flex;  align-items: flex-start;  }
6.2.2. Align-self

Свойство отвечает за выравнивание отдельно взятого flex-элемента по высоте flex-контейнера. Переопределяет выравнивание, заданное align-items. Не наследуется.

align-self
Значения:
auto Значение по умолчанию. Flex-элемент использует выравнивание, указанное в свойстве align-items flex-контейнера.
flex-start Верхний край flex-элемента помещается вплотную с flex-линией (или на расстоянии, с учетом заданных полей margin и рамок border элемента), проходящей через начало поперечной оси.
flex-end Нижний край flex-элемента помещается вплотную с flex-линией (или на расстоянии, с учетом заданных полей margin и рамок border элемента), проходящей через конец поперечной оси.
center Поля flex-элемента центрируется по поперечной оси в пределах flex-линии.
baseline Flex-элемент выравнивается по базовой линии.
stretch Если поперечный размер flex-элемента вычисляется как auto и ни одно из поперечных значений margin не равно auto, элемент растягивается. Значение по умолчанию.
initial Устанавливает значение свойства в значение по умолчанию.
inherit Наследует значение свойства от родительского элемента.
align-self
Рис. 11. Выравнивание отдельных flex-элементов

Синтаксис

.flex-container {  display: -webkit-flex;  display: flex;  }  .flex-item {  -webkit-align-self: center;   align-self: center;  }

6.3. Выравнивание строк flex-контейнера: align-content

Свойство выравнивает строки в flex-контейнере при наличии дополнительного пространства на поперечной оси, аналогично выравниванию отдельных элементов на главной оси с помощью свойства justify-content. Свойство не влияет на однострочный flex-контейнер. Не наследуется.

align-content
Значения:
flex-start Строки укладываются по направлению к началу flex-контейнера. Край первой строки помещается вплотную к краю flex-контейнера, каждая последующая — вплотную к предыдущей строке.
flex-end Строки укладываются по направлению к концу flex-контейнера. Край последней строки помещается вплотную к краю flex-контейнера, каждая предыдущая — вплотную к последующей строке.
center Строки укладываются по направлению к центру flex-контейнера. Строки расположены вплотную друг к другу и выровнены по центру flex-контейнера с равным расстоянием между начальным краем содержимого flex-контейнера и первой строкой и между конечным краем содержимого flex-контейнера и последней строкой.
space-between Строки равномерно распределены в flex-контейнере. Если оставшееся свободное пространство отрицательно или в flex-контейнере имеется только одна flex-линия, это значение идентично flex-start. В противном случае край первой строки помещается вплотную к начальному краю содержимого flex-контейнера, край последней строки — вплотную к конечному краю содержимого flex-контейнера. Остальные строки распределены так, чтобы расстояние между любыми двумя соседними строками было одинаковым.
space-around Строки равномерно распределены в flex-контейнере с половинным пробелом на обоих концах. Если оставшееся свободное пространство отрицательно, это значение идентично центcenter. В противном случае строки распределяются таким образом, чтобы расстояние между любыми двумя соседними строками было одинаковым, а расстояние между первой / последней строками и краями содержимого flex-контейнера составляло половину от расстояния между строками.
stretch Значение по умолчанию. Строки flex-элементов равномерно растягиваются, заполняя все доступное пространство. Если оставшееся свободное пространство отрицательно, это значение идентично flex-start. В противном случае свободное пространство будет разделено поровну между всеми строками, увеличивая их поперечный размер.
initial Устанавливает значение свойства в значение по умолчанию.
inherit Наследует значение свойства от родительского элемента.
align-content
Рис. 12. Многострочное выравнивание flex-элементов

Синтаксис

.flex-container {  display: -webkit-flex;  -webkit-flex-flow: row wrap;  -webkit-align-content: flex-end;   display: flex;  flex-flow: row wrap;  align-content: flex-end;  height: 100px;  }

По материалам CSS Flexible Box Layout Module Level 1

html5book.ru

Чем отличается система flex упражнений от каких-нибудь других видов спорта?

Система занятий «Фитнес-флекс» востребована во всем мире благодаря тому, что за небольшие сроки применение данной методики позволяет обнаружить вполне ощутимые положительные результаты. Занимаясь таким видом фитнеса, совершенно необязательно ограничивать себя в пище. При этом можно быть абсолютно уверенными в том, что спустя всего несколько тренировок лишние килограммы безвозвратно покинут вас, а талия и бедра станут стройнее на несколько сантиметров. Подобный эффект уже достаточно давно был подтвержден многими из тех, кто продолжительное время занимается данным видом фитнеса.

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

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

в чем состоят принципиальные отличия флекс фитнеса

Вы ощущаете на себе последствия стресса? Комплекс флекс занятия станет спасением для вас. Медики доказали, что в результате напряжения, которое нередко испытывает нервная система человека, нарушается кровоснабжение в области головы. Подобный эффект бывает вызван тем, что мышцы шеи во время стресса приходят в застывшее состояние, в результате чего замедляется работа кровеносных сосудов и, как следствие, развивается недостаток кислорода в мозге. Это проявляется в виде болевых ощущений в области головы, повышенной раздражительности и ощущении постоянной усталости. Помимо этого, может развиваться также шейный остеохондроз. Для того, чтобы избежать подобного нежелательного состояния, следует уделить немного внимания своему здоровью.

Тем, кто вынужден проводить большую часть суток в положении сидя, рекомендуется посещать такие занятия, которые смогут восполнить недостаток активности. Как известно, сидячий образ жизни – это один из основных факторов, ведущих к отложению солей в костях, по причине чего ухудшается процесс кровообращения. Многим, вероятно, не понаслышке знакомы неприятные ощущения, а также боль, которая сопровождает любые движения, стоит только встать с рабочего места и попытаться немного пройтись. Чтобы избежать возникновения такого синдрома, а также других проблем со здоровьем, следует разнообразить свою повседневную жизнь с помощью активных физических упражнений.

Кому подходит фитнес флекс?

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

Каковы явные плюсы метода флекс?

Такая система тренировок оптимальна для людей, которые заинтересованы во всестороннем развитии мускулатуры своего тела. Упражнения, из которых состоит комплекс данного вида фитнеса, помогают постепенно растягивать те или иные группы мышц, во время чего происходит удаление из них молочной кислоты – вещества, негативным образом влияющего на состояние организма. Именно наличие данной кислоты вызывает боль в мышцах и суставах во время движения, а также ощущение напряжения и хроническую усталость. Регулярно занимаясь флекс-фитнесом, вы ощутите, как все ваши мышцы становятся податливыми, упругими и гладкими. Кроме того, повышается уровень гибкости всех костей скелета, выравнивается осанка, улучшается самочувствие.

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

Каждое из упражнений методики флекс позволяет расслабиться, войти в особый ритм дыхания, который благотворно влияет на состояние нервной системы. Глубокое, ровное дыхание помогает организму получить в достаточном объеме окситоцин – гормон, который обеспечивает приятные ощущения. Иными словами, флекс-фитнес крайне положительно влияет на наше настроение, улучшает сон, придает бодрости. При этом достаточно заниматься всего 2-3 раза в неделю.

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

zhenskiy-otvet.ru


You May Also Like

About the Author: admind

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

Adblock
detector