Jump to content
  • 0

Я решил учить flexbox.


DivMan
 Share

Question

Я написал новое правило "flex-direction: column;"

получается, то, что перевернул главную ось и потом добавил ещё одно правило "justify-content: center;"

По моей логике, блок "my-flex-container" должен выравняться по середине высоты дисплея, не зависимо 

от разрешения. Почему он выравнивается, только тогда, если задать высоту?

 


 

Ведь, он же как-то выравнивается по ширине, если она не задана, почему тогда не выравнивается по высоте?

Link to comment
Share on other sites

23 answers to this question

Recommended Posts

  • 0
он же как-то выравнивается по ширине, если она не задана, почему тогда не выравнивается по высоте?

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

  • Like 1
Link to comment
Share on other sites

  • 0
Потому что ширина, когда она не задана, определяется как доступная ширина родителя минус марджины-бордеры-паддинги (для флекс-контейнеров она определяется так же, как для блоков). А высота, если она не задана, определяется исключительно по содержимому.

А можно у вас узнать - верстка флексами сейчас пользуется вообще спросом и популярностью?  просто до сих пор верстаю по старинке(((  не видел случая когда необходимо было бы использовать флексы.... можете пример привести такой))) в целях повышения квалификации... ну и интереса ради :ph34r:  :ph34r:  :ph34r:  

Link to comment
Share on other sites

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

 

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

 

Что касается примеров, то ты все можешь верстать на флексах. Я серьезно. Начиная с базового скелета, заканчивая всяческими тулбарами, менюшками, сетками. Это реально удобно, просто нужно разок попробовать вникнуть что к чему, и потом за уши не оторвешь. Будешь смотреть на методы прошлого поколения, как на что-то доисторическое и отсталое :) Статьи по этому делу есть, так что просто попробуй)

 

Я уже всем надоел своей статьей, наверное, но тем не менее http://habrahabr.ru/post/242545/

Есть довольно жизненные примеры. И это только малый процент что можно сотворить

  • Like 1
Link to comment
Share on other sites

  • 0

По моим наблюдениям, очень даже пользуется. Поддержка браузерами вплотную приближается к 95% (даже Опера Мини после обновления движка на сервере стала поддерживать!). Ведущие фреймворки переходят на flex по умолчанию для сеток. Не нужны хаки типа клирфиксов (как с float-ами), борьбы с пробелами (как с инлайн-блоками), возможностей больше, чем у таблиц (за редкими исключениями), а в Blink флексбоксы (стандартный, новый вариант) и рендерятся быстрее таблиц. Ну и просто мода в какой-то мере :)

  • Like 2
Link to comment
Share on other sites

  • 0
Так должно было быть?

 

 

Лучше так сделать http://jsfiddle.net/alexriz/9fg6fLxq/это будет более гибкое решение


за редкими исключениями

Что-то я в упор не понял в чем проблема, и что хотел получить автор 

Link to comment
Share on other sites

  • 0

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

Link to comment
Share on other sites

  • 0

Ааа я понял. Ну да, так просто не получится. Но с другой стороны, тут явно таблица просится, так что дело такое. Фанатеть  без предела тоже не стоит, а то получится как с флоатами)  

Link to comment
Share on other sites

  • 0
Не то чтобы пользуется спросом, пока что. Но уже давно пора. Я в частности всячески призываю переходить на флекс, ибо это очень вкусно, круто-модно-молодежно, если хотите.

 

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

 

SelenIT, thanks ))

Link to comment
Share on other sites

  • 0

Кстати, когда-то наткнулся на старенькую статью, где отмечалось, что flexbox модуль лучше применять к небольшим элементам, а к крупным grid layout. Все знают в каком положении сейчас grid, но вопрос: что же все-таки не так с "flaxbox для крупных элементов"?

Edited by Jack_V
Link to comment
Share on other sites

  • 0

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

 

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

  • Like 2
Link to comment
Share on other sites

  • 0
Может, из-за этого в Сафари и не торопятся убирать экспериментальный префикс...

В сафари там местами печальбеда случается, не то чтобы это было сильно критично, но все же ошибки расчетов блоков случаются

 

Меня больше IE накаляет. С начала казалось, что он лучше всех работает с flexbox. Но при более глубоком изучении оказалось что там просто баг на баге. Обойти конечно тоже можно, но тем не менее. IE как всегда кусок г****. 

Link to comment
Share on other sites

  • 0
Ошибки расчета/округления случаются и в Хроме, увы. Вот, не далее как на той неделе...

Не, я не об этом. Я о другом баге именно в сафари. в Хроме как раз все как положено

Вот пример:

(Full Screen)  https://jsfiddle.net/alexriz/qgmv8wta/embedded/result/

(Code) http://jsfiddle.net/alexriz/qgmv8wta/

 

vErvw0lPdQsjUSjz0xZP3AatVFWAXW.png

Link to comment
Share on other sites

  • 0

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

Link to comment
Share on other sites

  • 0
3 часа назад, Igor Schnaider сказал:

UPD
Кстати, вопрос: а почему с min-height на html нет прокрутки, а с height есть?

Блин, что-то я туплю сегодня. Думал, height 100% на body работает с min-height на html...

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy