flex
Mülkiyet Esnek Kutu Düzeni modülünün bir alt özelliktir.
Bu için kısaltmadır flex-grow
, flex-shrink
ve flex-basis
. İkinci ve üçüncü parametreler ( flex-shrink
ve flex-basis
) isteğe bağlıdır.
Sözdizimi
flex: none | ( ? || ) .flex-item ( /* this */ flex: 1 100px; /* is the same as */ flex-grow: 1; flex-basis: 100px; /* and it leaves the flex-shrink property alone, which would be */ flex-shrink: inherit; /* defaults to 1 */ )
İşte, ona kaç değer verdiğinize bağlı olarak değerlerin neyle eşleştiğine dair kepçe:
flex: none /* value 'none' case */ flex: /* One value syntax, variation 1 */ flex: /* One value syntax, variation 2 */ flex: /* Two values syntax, variation 1 */ flex: /* Two values syntax, variation 2 */ flex: /* Three values syntax */ flex: inherit
İçin ortak değerler flex
esnek: 0 otomatik;
Bu aynıdır flex: initial;
ve varsayılan değeri için steno: flex: 0 1 auto
. Öğeyi width
/ height
özelliklerine (veya ayarlanmamışsa içeriğine) göre boyutlandırır .
Biraz boş alan kaldığında esnek öğeyi esnek kılar, ancak yeterli alan olmadığında minimuma inmesine izin verir. Hizalama yetenekleri veya auto
kenar boşlukları, esnek öğeleri ana eksen boyunca hizalamak için kullanılabilir.
flex: otomatik;
Bu eşdeğerdir flex: 1 1 auto
. Dikkat edin, bu varsayılan değer değil. Öğeyi width
/ height
özelliklerine göre boyutlandırır , ancak tamamen esnek hale getirir, böylece ana eksen boyunca herhangi bir ekstra alanı emer.
Tüm öğeler ise flex: auto
, flex: initial
ya flex: none
, boyutlandınîmış öğeler sonra kalan boşluk ile öğelere eşit olarak dağıtılacaktır flex: auto
.
flex: yok;
Bu eşdeğerdir flex: 0 0 auto
. Öğeyi width
/ height
özelliklerine göre boyutlandırır , ancak tamamen esnek olmasını sağlar.
Bu, flex: initial
taşma durumunda bile küçülmesine izin verilmemesi dışında benzerdir .
esnek:
Eşdeğeri flex: 1 0px
. Esnek öğeyi esnek hale getirir ve esnek esasını sıfıra ayarlayarak, kalan alanın belirtilen oranını alan bir öğeyle sonuçlanır.
Esnek kapsayıcıdaki tüm öğeler bu deseni kullanıyorsa, boyutları belirtilen esnek faktörle orantılı olacaktır.
Demo
Aşağıdaki demo, flex
özellik sayesinde Flexbox ile çok basit bir düzen göstermektedir :
İşte açığa çıkan kod parçası:
.header, .footer ( flex: 1 100%; ) .sidebar ( flex: 1; ) .main ( flex: 2; )
İlk olarak, esnek öğelerin birden çok satırda görüntülenmesine izin verdik flex-flow: row wrap
.
Sonra hem üstbilgiye hem de altbilgiye, ne olursa olsun, mevcut görüntü alanı genişliğinin% 100'ünü almasını söyleriz.
Ve ana içerik ve her iki kenar çubuğu aynı satırı paylaşacak ve kalan alanı şu şekilde paylaşacaktır: Ana içerik için% 66 (2 / (1 + 2)), kenar çubuğu için% 33 (1 / (1 + 2)) .
Tarayıcı Desteği
- (modern), spesifikasyondaki son sözdizimi anlamına gelir (örneğin
display: flex;
) - (karma), 2011'den kalma garip bir resmi olmayan sözdizimi anlamına gelir (örneğin
display: flexbox;
) - (eski), 2009'daki eski sözdizimi anlamına gelir (örneğin
display: box;
)
Krom | Safari | Firefox | Opera | IE | Android | iOS |
---|---|---|---|---|---|---|
21+ (modern) 20- (eski) | 3.1+ (eski) | 2-21 (eski) 22+ (yeni) | 12.1+ (modern) | 10+ (karma) | 2.1+ (eski) | 3.2+ (eski) |
Blackberry tarayıcı 10+ yeni sözdizimini destekler.
En iyi tarayıcı desteğini almak için sözdizimlerinin nasıl karıştırılacağı hakkında daha fazla bilgi için lütfen bu makaleye (CSS Hileleri) veya bu makaleye (DevOpera) bakın.