Jump to content
  • 0

flex-grow


DivMan
 Share

Question

10 answers to this question

Recommended Posts

  • 0
В теории сказано, если 1 элементу задать flex-grow: 2, то он будет в 2 раза длиннее остальных

Нет, это не так, это заблуждения некорректного перевода зарубежных статей.

 

Грубо говоря grow задает скорость увеличения элемента. Если у одного элемента grow:1;, а у другого grow:2; то ситуация когда они друг к другу относятся как 1/2 это всего лишь частный случай, при условии если flex-basis:0;

 

Почитай статейку мою http://habrahabr.ru/post/242545/я там обращал внимание на этот момент и показывал на примерах.

 

Успехов! :)

  • Like 1
Link to comment
Share on other sites

  • 0

 

В теории сказано, если 1 элементу задать flex-grow: 2, то он будет в 2 раза длиннее остальных

Нет, это не так, это заблуждения некорректного перевода зарубежных статей.

 

 

Надо срочно учить английский? 

Edited by DivMan
Link to comment
Share on other sites

  • 0

Сделал для себя небольшой справочник, может кому пригодится 

 

flex-grow - фактор увелечения. 
контейнер 500px
базовая ширина 100px (flex-basis)
2 блока, остаток 300px
 
1) flex-grow: 2
2) flex-grow: 1
 
Получается соотношения, то есть
 
2 и 1 сложились и получится 3 части
 
Свободное пространство (300px) делится на 3 части и получается 100px
 
Одна часть равняется 100px
 
К первому блоку, добавится 2 части (200px) и получится 300px
Ко второму добавится 1 часть (100px) и получится 200px
 
300px+200px=500px === при написании свойства flex-grow, блоки занимают 
всю ширину родительского контейнера.
Edited by DivMan
Link to comment
Share on other sites

  • 0

А как по мне - то все куда проще.
1) Значение flex-grow по умолчанию равно нулю.
2) У кого из элементов значение не по умолчанию - те участвуют в деребане пустого места, а там уже у кого значение
круче (почти как чиновники ;)).

Даже, кажется, Серега (кто знает поймет) называл этот параметр жадностью.

 

Вот напилил сегодня две программки на пайтоне :
а) первая (flexbox) не очень полезна (принимает ширину контейнера, ширину блоков и flex-grow, а на выход
дает итоговую ширину)
б) а вторая (flexbox_width) поинтересней (принимает ширину контейнера, начальную ширину блоков и
ширину, которой следует добиться с помощью flex-grow, значение которого и подает на выход )

Качаем и читаем read_me.  ^_^

Edited by Jack_V
  • Like 1
Link to comment
Share on other sites

  • 0

Я когда разбирался писал примерчик, может и вам поможет лучше понять как это работает http://jsfiddle.net/alexriz/rhdw2v3v/

там у блоков basis:100px;. По растягивайте окно, например, чтобы значение [ContainerWidth:] стало 500px и посмотрите как распределится свободное место между блоками

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