Flexbox nedir? Tüm CSS güçlerinin tanımı, temel ilkeleri, avantajları ve dezavantajları. Bir bakışta düzen CSS Flexbox CSS Flexbox'ın temelleri
Flexbox, "Kutsal Kase" düzeni olarak adlandırılan ve birbirine nasıl uyduklarına bakılmaksızın tüm sütunların aynı yüksekliği alması gereken üç sütunlu, yaygın olarak kullanılan web sitesi düzenleri oluşturmak için idealdir. O gelince çıkış kodu ana sayfa navigasyondan önce gelir ve tam sayfada ana sayfa navigasyondan sonra gider.
Nachebto tsyogo.
Esnek kutuların ortaya çıkmasından önce, böyle bir düzen herhangi bir hack veya wiki olmadan kolayca elde edilebiliyordu. Geliştiriciler, ekranın boyutu ne olursa olsun her şeyin doğru şekilde çalışmasını sağlamak için genellikle ek işaretler eklemek, negatif kenar boşlukları eklemek ve diğer hileleri denemek zorunda kaldı. İşaretleme yönteminin gösterdiği gibi Flexbox'ta her şey çok daha basit.
Eksen kısa viklad kodu. Bu uygulamada #main öğesini esnek kap olarak kullanıyoruz ve üstbilgi ve altbilgiyi blok öğelerle dolduruyoruz. Yani sadece orta kısım flexbox haline geliyor. Eksen, esnek bir kapla kullanılabilecek bir parçadır.
#main (ekran: esnek; minimum yükseklik: hesaplama (100vh - 40vh);)
Esnek bir kap oluşturmak için sadece display: flex'i kullanın. Değeri döndürmek için ayrıca calc () ek işlevi için minimum yükseklik değerini ayarladık ve #main'i görünüm alanının yüksekliğinin %100'ü olarak ayarladık. eksi kapağın ve tabanın yüksekliği (her biri 20vh). Bu, yeterli alan olmadığından düzenin ekranın tüm yüksekliğini kaplamasını garanti eder. Sonuç olarak, bodrum kat hiç yükselmeyecek ve altındaki boş alanı kaplamayacak, bunun yerine daha az ekran yüksekliği kaplayacak.
Min-yükseklik hesaplamasının tamamlanması gerekiyordu, bizi affedin doktorlar, bu yüzden tüm öğelere box-sizing: border-box ayarını yaptık. Eğer hiçbir şey toplamamış olsaydık, dönüşüm için dolgu değerini toplama toplamamız gerekecekti.
Flex konteyneri taktıktan sonra flex elemanların sağına yerleştiriyoruz.
#main> makale (flex: 1;) #main> nav, #main> kenara (flex: 0 0 20vw; arka plan: bej;) #main> nav (order: -1;)
Power flex, power flex-growth, flex-shrink ve flex-base kelimelerinin kısaltmasıdır. İlk adımda yalnızca bir değer yazdık, bu nedenle flex, flex-grow'un gücünü yükler. Başka bir örnekte, üç değeri de yazdık.
FlexBox hakkında bilgi almak istiyorum. Flexbox yerleşim modülü (esnek kutu - “esnek blok”, şu anda W3C Aday Önerisi), daha etkili bir yerleşim yöntemi sunma, bir kaptaki öğeler arasında iyi bir yeri doğrulama ve dağıtma görevini belirler; aynı ev ve/veya dinamik ("gnuchky" kelimesinden gelir)
Bir kaptaki esnek yerleşimin ana fikri, alanı hızlı bir şekilde doldurmak için öğelerinin genişliğini / yüksekliğini (ve sırasını) değiştirmektir (çoğu durumda - tüm ekran türlerini ve ekran boyutlarını desteklemek için iv).Esnek kap, elemanları boş alanı dolduracak şekilde gerer veya sınırların dışına çıkmalarını önlemek için sıkıştırır.
En önemlisi, esnek kutu düzeni doğrudan temel düzenlerin (dikey olarak yığılmış bloklar ve yatay olarak yığılmış çevrimiçi öğeler) üzerine yerleştirilmemelidir.Orijinal düzen web sayfaları için ideal olduğundan, büyük veya katlanabilir eklentileri destekleme esnekliği yoktur (özellikle ekranın yönünü değiştirmek, boyutunu, esnemesini, sıkılığını vb. değiştirmek için sağa giderseniz).
Oskolki flexbox bütün bir modüldür ve sadece tek bir ünite değil, güçlerin yokluğunu birleştirir.Bunların her biri kapsayıcıya (Baba öğesi, esnek kapsayıcı adı verilen) birleştirilebilir, aynı zamanda diğer yetkililer de alt öğelere veya esnek öğelere birleştirilir.
Temel düzenin blok ve çevrimiçi elemanların doğrudan akışlarına göre hazırlanması gibi, esnek düzen de "esnek akışın doğrudan akışlarına" göre hazırlanmıştır.
Esnek Kutu
Temel olarak, elemanlar ya baş ekseninde (ana başlangıçtan ana uca) ya da enine eksen boyunca (çapraz başlangıçtan çapraz uca) dağıtılacaktır.
ana eksen - tüm esnek elemanların ana ekseni.Doğrusunu söylemek gerekirse yatay olmak zorunlu, her şey haklı-içerik çerçevesinde tutulmalı.
ana başlangıç | ana uç - esnek elemanlar, ana başlangıç konumu ve ana uç konumu altındaki bir kaba yerleştirilir.
ana boyut - seçilen temel değere göre konumdaki esnek elemanın genişliği veya yüksekliği.Ana değer, öğenin genişliği veya yüksekliği olabilir.
çapraz eksen - her şey enine, kafaya dik.Baş ekseninin yönü ile doğrudan hizalanmalıdır.
çapraz başlangıç | çapraz uç - esnek sıralar elemanlarla doldurulacak ve çapraz başlangıç konumu ve çapraz uç konumu olarak bir kaba yerleştirilecektir.
çapraz boyut - seçilen boyuta göre konumdaki esnek elemanın genişliği veya yüksekliği aynı boyuta eşittir.Bu güç, yerleşimdeki elemanın verilen boyuta göre genişliği veya yüksekliği ile önlenir.
güç
ekran: esnek | satır içi esnek;
Bu, tüm orta pedleri için esnek bir bağlam içeren esnek bir kap (seçilen değere bağlı olarak çevrimiçi veya blok düzeni) anlamına gelir.
ekran: diğer değerler | esnek | satır içi esnek;
Saygı lütfen:
CSS sütunları esnek kapla çalışmazkayan nokta, temizleme ve dikey hizalama esnek öğelerle çalışmaz
esnek yön
Esnek kabın baba kısmına yapışır.
Ana eksenin tamamının başlığını yerleştiriyorum, bu da esnek elemanların konteynere yerleştirileceği doğrudan konum olduğu anlamına geliyor.
esnek yön: satır | satır-ters | sütun | sütun-ters
satır (arka planın arkasında): ltr için soldan sağa, rtl için sağdan sola;
satır-ters: ltr için sağdan sola, rtl için soldan sağa;
sütun: satırla aynı, aşağı doğru;
sütun-tersine: satır tersine benzer, aşağıdan yukarıya doğru.
esnek ambalaj
Esnek kabın baba kısmına yapışır.
Bu, konteynerin tek sıralı veya çok sıralı olduğu ve ayrıca yeni sıraların dağıtılacağı enine eksenin yönü anlamına gelir.
esnek sarma: şimdirap | sarma | sarma-ters
nowrap (zamovchuvannyam için): tek sıra / ltr için soldan sağa, rtl için sağdan sola;
sarma: çok satırlı / ltr için soldan sağa, rtl için sağdan sola;
sarma-tersine: çok satırlı / ltr için sağdan sola, rtl için soldan sağa.
esnek akış
Esnek kabın baba kısmına yapışır.
Bu, aynı anda baş ve enine eksenler anlamına gelen esnek yön ve esnek sarma anlamına gelir.Sarma değeri şimdi satır olarak alınır.
esnek akış< ‘flex-direction’> || < ‘Flex-wrap’>
gerekçeli içerik
Esnek kabın baba kısmına yapışır.
Bu, baş ekseninin hizalanması anlamına gelir.Sıranın elemanları "gerilmediğinde" değil, gerildiğinde, ancak zaten maksimum boyutlarına ulaştığında etkili bir dağıtım sağlar.Ayrıca sıra sınırlarının ötesine geçerken elemanların tamamen dönmesine de olanak tanır.
içeriği yasla: esnek başlangıç | esnek uçlu | merkez | aradaki boşluk | uzay çevresinde
flex-start (sarmalamadan sonra): öğeler satırın başına kadar sarılır;
esnek uç: elemanlar satırın sonuna kadar kapalıdır;
merkez: öğeler sıranın ortasına hizalanır;
aradaki boşluk: öğeler eşit olarak dağıtılır (ilk öğe satırın başında, geri kalan öğe sonundadır)
Etrafında boşluk: Öğeler birbirleri ve kürek çekme konumu arasında eşit mesafe olacak şekilde eşit olarak dağıtılır.
gerekçeli içerik
öğeleri hizala
Esnek kabın baba kısmına yapışır.
Esnek elemanların üretim sırasındaki enine eksen boyunca döndürülmesi için sarma işleminin davranışını belirtir.Enine eksen için (ana eksene dik) yaslama içeriğinin bu sürümünü kullanın.
hizalama öğeleri: esnek başlangıç | esnek uçlu | merkez | temel | uzatmak
esnek başlangıç: çapraz başlangıç konumu genişletme öğeleri için çapraz başlangıç sınırı;
esnek uç: çapraz uç konumlarının elemanları için çapraz uç kenarlığı;
merkez: elemanlar enine eksenin merkezi boyunca hizalanır;
taban çizgisi: öğeler taban çizgileri boyunca hizalanır;
streç (sarma için): elemanlar kapları dolduracak şekilde gerilir (minimum genişlik / maksimum genişlik ayarlarıyla).
öğeleri hizala
içeriği hizala
Esnek kabın baba kısmına yapışır. Enine eksende boş alan olduğunda esnek bir kabın dikey sıraları, baş ekseninde içeriği hizalamanın nasıl çalışılacağına benzer. Not: Bu güç tek sıralı esnek kutularda çalışmaz.
hizalama içeriği: esnek başlangıç | esnek uçlu | merkez | aradaki boşluk | uzay çevresinde | uzatmak
flex-start: satırlar kabın ön kısmına hizalanır;
esnek uç: satırlar kabın sonuna hizalanır;
merkez: satırlar kabın ortasına hizalanır;
aradaki boşluk: sıralar eşit olarak dağıtılır (ilk sıra sıranın koçanında, geri kalan sıra sondadır)
Etrafında boşluk: satırlar, aralarında eşit boşluk olacak şekilde eşit olarak dağıtılır;
streç (yıkama için): sıralar gerilerek boş alan oluşturulur.
içeriği hizala
emir
Kurulumdan sonra esnek elemanlar koçan sırasına göre düzenlenir.Prote, düzenin gücü konteynerdeki dağılım sırasını kontrol edebilir.
sipariş 1
esnek büyüme
Alt öğeye/esnek öğeye bağlanmıştır. Bu, esnek bir elemanın gerektiğinde "büyüyebileceği" anlamına gelir.Ölçülemez değerler alır ve orantılı olarak kullanılır.Bu, elemanın konteynerin ortasında boş bir alan kaplayabileceği anlamına gelir. Tüm elemanların esneme gücü 1'e ayarlandığından kabın ortasındaki kaplama aynı boyutu alır.Alanlardan birini 2 değerine ayarlarsanız diğerlerine göre iki kat daha fazla alan ödünç almış olursunuz.
esnek büyüme
esnek-küçültme
Alt öğeye/esnek öğeye bağlanmıştır.
Esnek bir elemanın gerektiğinde küçülme yeteneğini gösterir.
esnek-küçültme
Negatif sayılar kabul edilmez.
esnek tabanlı
Alt öğeye/esnek öğeye bağlanmıştır. Bu, kaptaki alanı bölmeden önce eleman için kullanılan malzemenin boyutu anlamına gelir.
esnek tabanlı
esnek
Alt öğeye/esnek öğeye bağlanmıştır. Bu, flex-grow, flex-shrink ve flex-baz'ın kısaltmasıdır.Diğer ve üçüncü parametreler (esnek küçültme, esnek temel) bağlayıcıdır.Temizleme değeri - 0 1 otomatik.
esnek: yok | [< ‘Flex-grow «> <» flex-shrink’>? || < ‘Flex-basis’>]
kendini hizala
Alt öğeye/esnek öğeye bağlanmıştır. Diğer esnek öğeler için sıralamayı, atamaları veya hizalama öğelerini yeniden değerlendirmenize olanak tanır. Mevcut değerlere kısa bir genel bakış için hizalama öğelerinin gücünün açıklamasına dönün.
kendini hizala: otomatik | esnek başlangıç | esnek uçlu | merkez | temel | uzatmak
Uygula
Günümüzde çok basit bir popo ile neredeyse her gün keskinleştiriliyor: hizalama tam ortada.Flexbox'ı kullanmaktan daha basit bir şey yoktur.
Parent (ekran: flex; yükseklik: 300px;).child (genişlik: 100px; / * Durum ne olursa olsun * / yükseklik: 100px; / * Durum ne olursa olsun * / kenar boşluğu: auto; / * Büyü! * /)
Bu örnek, auto gibi görevler olan esnek kapsayıcıların altındaki kenar boşluğunun tüm alanı doldurması gerçeğine dayanmaktadır, dolayısıyla bu şekilde verilen yaklaşım, öğeyi rahatsız edici eksenler boyunca tam olarak merkeze hizalar. yetkililer.Sabit boyutta (boya için) 6 elementten oluşan bir set bulun, ancak kabın boyutunu değiştirebilirsiniz.Bunları yatay olarak eşit şekilde dağıtmak istiyoruz, böylece tarayıcı penceresini yeniden boyutlandırırken her şey iyi görünür (@ medya sorguları olmadan!).
Esnek konteyner (
/ * Esnek bağlam artık çözülebilir * /
ekran: esnek;
/ * Artık akışı ve istediğimizi yönlendirmek önemli, böylece unsurlar
yeni bir satıra aktarıldı
* Bunun şununla aynı olduğunu unutmayın:
* Esnek yön: satır;
* Esnek sarma: sarma;
* /
esnek akış: satır sarma;
/ * Artık alanın nasıl bölüneceği önemli * /
}
Hazır. Her şey farklı; sağda aynı tasarım var. Başka bir şey deneyelim.Sitemizin en üst kısmında sağa hizalanmış gezinmeye ihtiyacımız olduğunu, ancak orta boy ekranlar için ortaya hizalanmasını ve küçük ekranlar için tek sayfaya dönüştürülmesini de istediğimizi lütfen unutmayın.Her şeyin tamamlanması kolaydır.
/ * Harika ekranlar * /
.navigasyon(
ekran: esnek;
esnek akış: satır sarma;
/ * Baş ekseni boyunca satırın sonuna kadar olan öğeleri yok eder * /
yasla-içerik: esnek uç;
}
medyanın tümü ve (maks. genişlik: 800 piksel) (
.navigasyon(
/ * Orta büyüklükteki ekranlar için gezinme ortalanmıştır,
elemanlar arasındaki boşluğu eşit olarak dağıtmak * /
yasla-içerik: boşluk-etrafında;
}
}
/ * Küçük ekranlar * /
medyanın tümü ve (maks. genişlik: 500 piksel) (
.navigasyon(
/ * Küçük ekranlarda, satırları sütundaki kendi sıralı öğeleriyle değiştirin * /
esnek yön: sütun;
}
}
Esnek elemanların esnekliğiyle oynayalım!Tam genişlikte üstbilgi ve altbilgiye sahip, mobil odaklı üç sütunlu bir düzene ne dersiniz?І farklı bir rötuş sırasına göre.
Paketleyici (
ekran: esnek;
esnek akış: satır sarma;
}
/ * Tüm öğelerin genişliğini %100 olarak ayarlayın * /
.başlık, .ana, .nav, .kenar, .altbilgi (
%1100 esnek;
}
/ * Bu durumda yönlendirme için çıktı sırasını koyarız
* Mobil cihazlar:
* 1 başlık
* 2 navigasyon
* 3 ana
* 4 kenara
* 5 altbilgi
* /
/ * Orta boy ekranlar * /
medyanın tümü ve (minimum genişlik: 600 piksel) (
/ * Bir satırda iki kenar çubuğu görüntülenir * /
.kenara (esnek: 1 otomatik;)
}
/ * Harika ekranlar * /
Hiçbir şey yerinde durmuyor, teknolojiler ve standartlar gelişiyor, web sitesi düzeni için yeni teknikler ve yöntemler ortaya çıkıyor, örneğin nesnel nedenlerden dolayı görmediğimiz tablolu öğelerle düzen, kayan öğelerle düzeni değiştirdi.
Birçok kod düzenleyiciyle veya indirilebilecek Emmet formatı için manuel bir eklentiyle, uygulamanızın temel düzenini aşağıdaki şekilde oluşturabilirsiniz: bölüm> div * 3> lorem+ Sekme (değer lorem aşağıda gösterilene benzer bir metin oluşturur).
Yerlerinin yüzeyine bakılmaksızın, düzenimizin sütunlarının yerleşimini yeni bir yükseklikle sınırlamak için özel bir çaba göstermediğimizi lütfen unutmayın ve bu harika. elementler
esnek unsurlarla dokunmamış ve gelecekte yeniden işlenmemiş üçüncü eleman
Kıçımızın sonucu:
Satır esnek konteyner
Blok elemanlarına benzer şekilde esnek kaplar küçük olabilir. Küçük esnek kapların blok kaplara göre önemine bakalım. Ön tarafta, birincil blok elemanı ekranın tüm genişliğini kapladığından ve bloğa eşit bir birincil eleman gibi davrandığından blok konteynerinin dikey yapısına baktık. Küçük esnek kaplar kullanıldığında emilen birincil elementler haline gelirler, böylece elementlerin esnekliği korunur.
Ön uç bu öneme sahip olacaktır, çünkü ön uç görünmeyecek, aynı nedenden dolayı çocuk esnek elemanlarına boyut görevleri net bir şekilde atanmamıştır ve sonuç olarak konteynerimiz ister sıralı ister blok halinde olsun, aynı olsun, ekranın tüm genişliğini ödünç aldım.
Kimin izmaritleri yerleştirildi iki küçük olanlar iki blok esnek kaplar, ortalarına yerleştirdik beş elementler
Yardım için hızlı bir şekilde benzer bir düzen oluşturmak için Emmet düzenleyiciye şunu yazın: div.inline-flex * 2> div * 5 + Tab ve farklı bir sınıf div.flex * 2> div * 5 + Tab ile aynı.
Örneğimizin sonucuna bir bakın, küçük ve blok esnek kaplar arasındaki fark artık sizin için çok açık. Bir satır konteyneri bir giriş elemanı olarak çalışır ve yalnızca alt esnek elemanlarının gerektirdiği genişliği kaplar ve bir blok esnek konteyner, alt esnek elemanlarının boyutundan bağımsız olarak ekranın tüm genişliğini kaplar.
Kıçımızın sonucu:
Küçük 205 Hat içi esnek kapların esnek kaplara göre çok yönlülüğünün uygulanması.
Direkt olarak? Hangisi doğrudan?
Esnek elemanlar doğrudan iki eksenin konumuna göre oluşturulur: baş ekseni esnek konteyner iyogo enine eksen Yak, roztashovaniy'in lideridir kafaya dik. Başlığın tamamı, ltr (global HTML özelliği dir, ltr değerlerine sahip CSS yön gücü) tarafından yönlendirildiğinde sağa doğru genişletilir ve rtl değeri için enine olan aşağıya doğru (aynı anlama gelir) yönlendirilir ayna görüntüsünde görüntülenir.
Hizalama içeriği gücü, esnek kabın ortasındaki sıraların enine eksen boyunca hizalanma türünü belirterek bol miktarda alan sağlar.
kadar durgunluk: Esnek kap.
Zamovchuvannyam'ın önemi: Uzatmak.
Esnek başlangıç Sıralar enine eksenin koçanı üzerine yayılır. Derinin ön sırası ön sıraya paralel uzanır. flex-end Satırlar, enine eksenin ucundan başlayarak döndürülür. Cildin ön sırası adımla aynı hizadadır. merkez Sıralar kabın ortasına yerleştirilmiştir. space-between Sıralar kap içinde eşit olarak dağıtılır ve aralarında durur. boşluk-etrafında Satırlar, iki sıra arasındaki boşluk aynı olacak şekilde eşit olarak dağıtılır. İlk sıranın önündeki ve kalan sıradan sonraki boş alan, iki sıra arasındaki boşluğun yarısı kadardır. boşluk-eşit Satırlar eşit olarak dağıtılır. İlk sıradan önceki ve kalan sıradan sonraki boş alan diğer sıralarla aynı genişliktedir. streç Sıralar eşit şekilde gerilerek bol miktarda alan bırakılır.
align-content özelliği, justify-content'in ana eksen içindeki tek tek öğeleri nasıl hizaladığına benzer şekilde, çapraz eksende fazladan boşluk olduğunda esnek kapsayıcının çizgilerini esnek kapsayıcı içinde hizalar. Bu özelliğin tek hatlı esnek konteyner üzerinde hiçbir etkisi olmadığını unutmayın. Değerler aşağıdaki anlamlara sahiptir:
Not: Yalnızca çok hatlı esnek kaplarda çapraz eksende çizgilerin hizalanması için boş alan bulunur, çünkü tek hatlı esnek kaplarda tek hat otomatik olarak boşluğu dolduracak şekilde esner.
Şunlar için geçerlidir:: Esnek kaplar.
İlk: Uzatmak.
Esnek Başlangıç Hatları esnek konteynerin başlangıcına doğru paketlenir. Esnek kaptaki ilk satırın çapraz başlangıç kenarı, esnek kabın çapraz başlangıç kenarıyla aynı hizada yerleştirilir ve sonraki her satır, bir önceki satırla aynı hizada yerleştirilir. esnek uç Hatlar esnek kabın sonuna doğru paketlenir. Son satırın çapraz uç kenarı, esnek kabın çapraz uç kenarıyla aynı hizada yerleştirilir ve önceki her satır, bir sonraki satırla aynı hizada yerleştirilir. merkez Çizgiler esnek kabın merkezine doğru paketlenir. Esnek kaptaki çizgiler birbiriyle aynı hizada yerleştirilir ve esnek kabın ortasında hizalanır; esnek kabın çapraz başlangıç içerik kenarı ile esnek kaptaki ilk satır arasında ve esnek kaptaki ilk satır arasında eşit miktarda boşluk bulunur. esnek kabın çapraz uç içerik kenarı ve esnek kabın son satırı. (Kalan boş alan negatifse çizgiler her iki yönde de eşit şekilde taşacaktır.) Çizgiler Arası Boşluk Esnek kapta eşit olarak dağıtılır. Kalan boş alan negatifse bu değer esnek başlangıçla aynıdır. Aksi takdirde, esnek kapsayıcıdaki ilk satırın çapraz başlangıç kenarı, esnek kapsayıcının çapraz başlangıç içerik kenarıyla aynı hizada yerleştirilir; esnek kaptaki son satırın çapraz başlangıç kenarı, esnek kapsayıcıdaki çapraz başlangıç içerik kenarıyla aynı hizada yerleştirilir. Esnek kabın uç içerik kenarı ve esnek kapta kalan çizgiler, herhangi iki bitişik çizgi arasındaki boşluk aynı olacak şekilde dağıtılır. boşluk-etrafındaki çizgiler esnek kap içinde her iki uçta yarım boyutlu boşluklarla eşit olarak dağıtılır. Kalan boş alan negatifse bu değer merkezle aynıdır. Aksi takdirde, esnek kaptaki çizgiler, herhangi iki bitişik çizgi arasındaki mesafe aynı olacak ve ilk/son satırlar ile esnek kap kenarları arasındaki boşluk, esnek çizgiler arasındaki aralığın yarısı kadar olacak şekilde dağıtılır. uzay-eşit Çizgiler esnek kapta eşit şekilde dağıtılır. Kalan boş alan negatifse bu değer merkezle aynıdır. Aksi takdirde esnek kaptaki çizgiler, her esnek çizgi arasındaki boşluk aynı olacak şekilde dağıtılır. uzat Çizgiler kalan alanı kaplayacak şekilde uzar. Kalan boş alan negatifse bu değer esnek başlangıçla aynıdır. Aksi takdirde, boş alan tüm çizgiler arasında eşit olarak bölünerek çapraz boyutları artırılır.
CSS esnek kutusu (Esnek Kutu Yerleşim Modülü)- ranza konteynerinin yerleşimi için bir modül - bir eksen fikrine dayalı olarak elemanları düzenlemenin bir yoludur.
Flexbox katlanır esnek konteynerі esnek öğeler. Öğeler bir sıra halinde düzenlenebilir veya istiflenebilir ve boşluk, aralarında farklı şekillerde dağıtılabilir.
Flexbox modülü aşağıdakileri özelleştirmenize olanak tanır:
- Öğeleri dört yönden birinde döndürün: soldan sağa, sağdan sola, aşağı veya yukarı.
- Öğelerin görüntülenme sırasını yeniden düzenleyin.
- Elemanların boyutlarını mevcut alana sığacak şekilde otomatik olarak belirleyin.
- Sorunu yatay ve dikey ortalamayla çözün.
- Elemanları hareket etmelerine izin vermeden kabın ortasına aktarın.
- Aynı yükseklikte sütunlar oluşturun.
- Kenarın alt kısmına sıkılanları kapatın.
Flexbox'ın belirli görevleri vardır - esnek öğeler yalnızca bir eksen boyunca yerleştirilebildiğinden, örneğin bir gezinme çubuğu gibi tek boyutlu düzenlerin oluşturulması.
Modülün tam sorunlarının listesini ve bunlar için tarayıcılar arası çözümleri Philip Walton'un makalesinde okuyabilirsiniz.
Flexbox nedir?
Tarayıcı desteği
yani: 11,0, 10,0 -ms-
Firefox: 28.0, 18.0 -moz-
Krom: 29.0, 21.0 -webkit-
Safari: 6.1 -web kiti-
Opera: 12.1 -web kiti-
iOS Safari'si: 7.0 -web kiti-
Opera Mini: 8
Android Tarayıcı: 4.4, 4.1 -webkit-
Android için Chrome: 44
1. Temel kavramlar
Küçük 1. Flexbox modeliFlexbox modülünü tanımlamak için farklı bir terim seti kullanılır. Esnek akış değerleri ve kayıt modu, bu terimlerin fiziksel yönlerdeki benzerliğini gösterir: üst / sağ / alt / sol, eksenler: dikey / yatay ve boyutlar: genişlik / yükseklik.
Bütün kafa (ana eksen)- tüm esnek elemanlar dahildir. Vaughn esas olarak Dünya'ya uzanıyor.
Ana başlangıç ve ana bitiş- esnek elemanların yerleştirildiği esnek kabın uç ve uç taraflarını gösteren çizgiler (ana başlangıçtan başlayarak düz olarak ana uca kadar).
Ana boyut) - esnek kabın veya esnek elemanların genişliği veya yüksekliği, ana dünyada ne olduklarına bağlı olarak, esnek kabın veya esnek elemanın ana boyutunu belirtir.
Çapraz eksen- hepsi baş eksenine dik. Vaughn enine boyutta uzanıyor.
Çapraz başlangıç ve çapraz bitiş- esnek elemanların yerleştirildiği enine eksenin ön ve uç taraflarını gösteren çizgiler.
Çapraz boyut- enine boyutta olanlar da dahil olmak üzere esnek konteynerin veya esnek elemanların genişliği veya yüksekliği ve bunların enine boyutu.
Küçük 2. Satır ve sütun modu
2. Esnek kap
Flex kapsayıcı bunun yerine yeni bir esnek biçimlendirme bağlamı yükler. Esnek kapsayıcı bir blok kapsayıcı değildir, dolayısıyla kayan nokta, temizleme, dikey hizalama gibi CSS kontrolleri alt öğelere uygulanmaz. Ayrıca esnek konteynere, metinde sütunlar ve :: ilk satır ve :: ilk harf gibi sözde öğeler oluşturan sütun-*'ın gücü enjekte edilmemelidir.
Flexbox düzen modeli, alt blokları içeren babanın html öğesinin CSS görüntüleme gücünün temel değerleriyle ilişkilidir. Bu modelin öğelerini kontrol etmek için ekran gücünü aşağıdaki gibi ayarlamanız gerekir:
Flex-container (/ * blok seviyesinde bir esnek konteyner oluşturur * / display: -webkit-flex; display: flex;) .flex-container (/ * satır seviyesinde bir esnek konteyner oluşturur * / display: -webkit-inline- esnek; ekran: satır içi esnek;)
Dış görünüm gücü için bu değeri ayarladıktan sonra, alt öğe otomatik olarak tek sıra halinde (baş ekseni boyunca) istiflenen esnek bir öğe haline gelir. Ancak blok ve küçük alt öğeler oluşturulduğunda, öğenin iç kenar boşluklarını ve çerçevelerini ayarlamak yerine blokların genişliği genişlikleriyle aynı olur.
Küçük 3. Flexbox modelindeki elemanların doğrulanması
Babanın bloğu metin veya görüntüleri yanmadan değiştirirse, bunlar anonim esnek öğeler haline gelir. Metin kap bloğunun üst kenarıyla hizalanır ve görüntünün yüksekliği bloğun yüksekliğine eşit hale gelir, böylece deforme olur.
3. Esnek elemanlar
Esnek öğeler, iş akışında esnek kapsayıcı yerine temsil edilen bloklardır. Flex kapsayıcı kendisi için aşağıdaki özellikleri içeren yeni bir biçimlendirme bağlamı yükler:
- Esnek elemanların görüntülenme gücü değerleri engellenir. Görüntülenen değer: satır içi blok; görüntülüyorum: tablo hücresi; ekranda hesaplanır: blok; .
- Öğeler arasında boş alan vardır, çünkü hiçbir şey kendi esnek öğesi haline gelmez, böylece öğeler arası metin anonim bir esnek öğeye sarılır. Anonim bir esnek öğe için harici stiller ayarlamak mümkün değildir; aksi takdirde bunları (örneğin yazı tipi parametrelerini) esnek kaptan devralırlar.
- Tamamen konumlandırılmış bir esnek öğe, esnek düzenin düzeninde yer almaz.
- Yanal esnek elemanların kenarları çökmez.
- Yüzde marjı ve dolgu değerleri, bloklarının iç boyutuna göre hesaplanır.
- kenar boşluğu: otomatik; genişliyor, benzer dünyadaki ek alan azalıyor. Mevcut esnek elemanların hizalanması veya farklılaştırılması için kullanılabilirler.
- Sarma sonrasında esnek elemanların otomatik minimum boyutu ve bunların birlikte minimum boyutu, ardından min-width: auto; . Kaydırılabilir kapsayıcılar için otomatik minimum boyut sıfıra ayarlanır.
4. Esnek elemanların gösterilme sırası ve yönelimi
Esnek bir kap yerine onu herhangi bir yönde ve herhangi bir sırayla yerleştirebilirsiniz (esnek öğelerin kabın ortasında yeniden düzenlenmesi görsel sunumu etkiler).
4.1. Baş ekseninin yönü: esnek yön
Güç esnek kaba aktarılır. Sürekli kayıt moduna benzer şekilde esnek elemanların yerleştirildiği kafa ekseninin yönünü kontrol eder. Chi azalmaz.
esnek yön | |
---|---|
Anlam: | |
sıra | Yıkamanın önemi, soldan sağa (rtl cinsinden sağdan sola). Esnek elemanlar arka arkaya yerleştirilir. Baş ekseninin koçanı (ana başlangıç) ve sonu (ana uç), sıra ekseninin (satır içi eksen) koçanı (satır içi başlangıç) ve ucuna (satır içi uç) karşılık gelir. |
satır tersi | Sağdan sola düz (rtl olarak soldan sağa). Esnek elemanlar kabın sağ kenarı boyunca (rtl'de - solda) arka arkaya yerleştirilir. |
kolon | Doğrudan canavara doğru. Esnek elemanlar bir sütuna yerleştirilir. |
sütun-ters | Öğeleri aşağıdan yukarıya doğru ters sırada içeren bir sütun. |
ilk | |
miras almak |
Küçük 4. Soldan sağa dil için esnek yönlendirmenin gücü
sözdizimi
Esnek konteyner (ekran: -webkit-flex; -webkit-flex-direction: row-reverse; display: flex; flex-direction: row-reverse;)
4.2. Çok satırlı esnek kapsayıcıları yönetme: esnek sarma
Güç, esnek konteynerin tek sıralı mı yoksa çok sıralı mı olacağını belirler ve ayrıca esnek konteynerin yeni hatlarının doğrudan döşenebilmesi için enine eksenin yönünü de ayarlar.
Astarın arkasında esnek elemanlar baş ekseni etrafında tek sıra halinde döşenir. Aşırı doldurulursa koku esnek kabın sınırlarını aşacaktır. Güç azalmaz.
Küçük 5. LTR'ler için çok sayıda ek esnek sarma gücünün yönetimi
sözdizimi
Flex-container (ekran: -webkit-flex; -webkit-flex-wrap: sarma; ekran: flex; flex-wrap: sarma;)
4.3. Doğrudan ve bagatoryadkova'nın kısa kaydı: esnek akış
Güç, kafanın ve enine eksenlerin yönünü ve ayrıca gerekirse esnek elemanları sıralara aktarma yeteneğini belirlemenizi sağlar. Esnek yön ve esnek sarma güçlerinin kısa bir kaydıdır. Esnek akışın arkasındaki anlam: satır şimdi raporu; . gücü azalmaz.
sözdizimi
Esnek konteyner (ekran: -webkit-flex; -webkit-flex-flow: satır sarma; ekran: esnek; esnek akış: satır sarma;)
4.4. Esnek elemanların görüntülenme sırası: sıra
Yetki, esnek öğelerin esnek bir kabın ortasında görüntülendiği ve düzenlendiği sırayı ifade eder. Esnek elemanlara bağlı kalın. Güç azalmaz.
Başlangıçta tüm esnek öğeler şu şekilde ayarlanmıştır: 0; . Vin elemanı için -1 değeri girildiğinde terimin başına, 1 - sonuna kadar hareket edilir. Bir dizi esnek öğe aynı sıra değerlerine sahipse, bunlar aynı sırada görünecektir.
sözdizimi
Flex-container (ekran: -webkit-flex; ekran: flex;).flex-item (-webkit-order: 1; order: 1;)
Küçük 6. Esnek elemanların gösterilme sırası
5. Esnek elemanların esnekliği
Esnek bir düzenin birincil yönü, ana düzende mevcut olan belleğe uyum sağlamak için genişliklerini/yüksekliklerini (kafa ekseninde hangi boyut olduğu dahil) değiştirerek öğeleri "esnetme" yeteneğidir. Ek güç esnekliğini deneyin. Esnek kap, kabı doldurmak için alt elemanları arasına (esnek büyüme katsayılarıyla orantılı olarak) geniş bir alan ayırır veya dünyayı dolaşmak için onları (esnek büzülme katsayılarıyla orantılı olarak) sıkıştırır.
Esnek büyüme ve esnek daralma değerleri sıfıra ulaşırsa esnek eleman tamamen "esnek olmayan" ve başka bir durumda "esnek" olacaktır.
5.1. Küçük boyutların tek güçle fethi: flex
Güç, gücün kısa versiyonudur: esnek büyüme, esnek daralma ve esnek temel. Ayarlar için değerler: esnek: 0 1 otomatik; . Gücün üç anlamından birini veya tümünü belirtebilirsiniz. Güç azalmaz.
sözdizimi
Flex-container (ekran: -webkit-flex; ekran: flex;).flex-item (-webkit-flex 3 1 100px; -ms-flex 3 1 100px; flex 3 1 100px;)
5.2. Büyüme katsayısı: esnek büyüme
Güç, pozitif boş alan dağıtırken esnek bir kaptaki bir esnek elemanın büyümesinin diğer esnek elemanlara oranını ifade eder. Bir satırdaki flex-grow flex öğelerinin değeri 1'den küçükse, kullanılabilir alanın %100'ünden daha azını kaplarlar. Güç azalmaz.
Küçük 7. Flex-grow'u kullanarak gezinme panelinde daha fazla alanı yönetme
sözdizimi
Flex-container (ekran: -webkit-flex; ekran: flex;).flex-item (-webkit-flex-grow: 3; flex-grow: 3;)
5.3. Büzülme oranı: esnek-büzülme
Güç, negatif boş alanı dağıtırken esnek bir elemanın diğer esnek elemanlarla karşılaştırıldığında sıkıştırma katsayısını gösterir. Taban boyutu esnek temeli ile çarpın. Negatif alan, öğenin ne kadar sıkıştırılabileceğiyle orantılıdır; dolayısıyla, örneğin küçük bir esnek öğe, daha büyük bir esnek öğe değişene kadar sıfıra değişmeyecektir. Güç azalmaz.
Küçük 8. Arka arkaya esnek elemanların sesi
sözdizimi
Flex-container (ekran: -webkit-flex; ekran: flex;).flex-item (-webkit-flex-shrink: 3; flex-shrink: 3;)
5.4. Temel boyut: esnek tabanlı
Otorite, esnek elemanın başlangıçtaki temel boyutunu, esneklik katsayılarına göre boş alanın bölünmesine göre belirler. Otomatik ve içerik dışındaki tüm değerler için yatay kayıt modlarında temel boyut genişlik olarak belirlenir. Yüzde değerleri esnek konteynerin boyutuna bağlıdır ve boyut görev değilse esnek temele ilişkin değerler bunun yerine boyutuna dayanır. Chi azalmaz.
sözdizimi
Flex-konteyner (ekran: -webkit-flex; ekran: flex;).flex-item (-webkit-flex-temel: 100px; flex-temel: 100px;)
6. Virüs banyosu
6.1. Baş ekseni boyunca doğrulama: içeriği haklı göster
Esnek elemanların gücü, esnek kabın baş ekseni boyunca hizalanarak geniş alan dağıtılır, esnek elemanlarla işgal edilmez. Bir öğe esnek bir kaba dönüştürüldüğünde, esnek öğeler birlikte gruplandırılır (çünkü bunların kenar boşlukları belirtilmemiştir). Kenar boşluğu ve esnek büyüme değerleri genişletildikten sonra boşluklar eklenir. Herhangi bir öğenin değeri sıfırsa, flex-grow veya marj: auto; , Güç içeri akmayacak. Güç azalmaz.
Anlam: | |
esnek başlangıç | Zamovchuvannyam'ın önemi. Esnek elemanlar, esnek kabın koçanı hattından çıkacak şekilde düz bir çizgi halinde döşenir. |
esnek uçlu | Esnek elemanlar, esnek kabın uç çizgisinden itibaren düz bir şekilde yerleştirilir. |
merkez | Esnek elemanlar esnek kabın merkezinde hizalanır. |
arasındaki boşluk | Esnek elemanlar hat boyunca eşit olarak dağıtılır. İlk esnek eleman koçanı hattının kenarı ile aynı hizada yerleştirilir, geri kalan esnek eleman uç çizginin kenarı ile aynı hizada yerleştirilir ve hattaki esnek elemanlar ayakta duracak şekilde bölünür Peki, hangi iki doğal eleman vardı , Yine de. Satırda yalnızca bir flex öğesi vardır ve değer, flex-start parametresiyle aynıdır. |
uzay çevresinde | Hat üzerindeki esnek elemanlar, iki bitişik esnek eleman arasındaki boşluk aynı olacak ve birinci/kalan esnek elemanlar ile esnek kabın kenarları arasındaki boşluk, esnek elemanların kopsları arasındaki mesafenin yarısı kadar olacak şekilde dağıtılır. |
ilk | Güç anlamında gücün önemini ortaya koyar. |
miras almak | Anavatan unsurunun gücünün öneminin azalması. |
Küçük 9. Ek güç gerekçeli içerik için öğelerin erdemi ve boş alanın dağıtımı
sözdizimi
Esnek kapsayıcı (ekran: -webkit-flex; -webkit-justify-content: flex-start; display: flex; justify-content: flex-start;)
6.2. Enine eksen boyunca hizalama: öğeleri hizala ve kendini hizala
Esnek elemanlar, esnek kabın akış sırasının enine ekseni boyunca hizalanabilir. align-items, anonim esnek öğeler de dahil olmak üzere tüm esnek kap öğelerinin hizalamasını ayarlar. align-self, birden fazla esnek öğenin değerini yeniden değerlendirmenize olanak tanır. Esnek elemanın enine kenar boşluğu auto değerine sahip olsa da, align-self'in herhangi bir akışı yoktur.
6.2.1. Öğeleri hizala
Enine eksen boyunca anonim esnek öğeler de dahil olmak üzere dikey esnek öğelerin gücü. Chi azalmaz.
Anlam: | |
esnek başlangıç | |
esnek uçlu | |
merkez | |
temel çizgi | Doğrulamada yer alan tüm esnek elemanların taban çizgilerinden kaçınılır. |
uzatmak | |
ilk | Güç anlamında gücün önemini ortaya koyar. |
miras almak | Anavatan unsurunun gücünün öneminin azalması. |
sözdizimi
Esnek konteyner (ekran: -webkit-flex; -webkit-align-items: flex-start; display: flex; hizalama öğeleri: flex-start;)
6.2.2. Kendini hizala
Güç, seçilen esnek elemanın esnek kabın yüksekliğine göre hizalanmasını gösterir. Görev hizalama öğelerinin hizalanmasına yeniden değer verir. Chi azalmaz.
Anlam: | |
Oto | Zamovchuvannyam'ın önemi. Esnek öğe vikoristiktir ve hizalama öğeleri esnek kabının gücüne atanır. |
esnek başlangıç | Esnek elemanın üst kenarı, esnek çizginin yanında (veya kenar boşluğu ayarlarıyla yan tarafta) bulunmalıdır. çerçeve sınırı eleman) enine eksenin koçanı içinden geçecek. |
esnek uçlu | Esnek elemanın alt kenarı, enine eksenin ucundan geçen esnek çizginin yanında (veya elemanın kenar boşlukları ve kenar çerçevelerinin ayarlarıyla birlikte yan tarafta) bulunur. |
merkez | Esnek bir elemanın kenar boşlukları, esnek çizgiler arasındaki enine eksen boyunca ortalanır. |
temel çizgi | Esnek eleman taban çizgisi boyunca hizalanır. |
uzatmak | Bir esnek elemanın enine boyutu auto olarak hesaplandığından ve hatta enine kenar boşluğu değeri auto'ya eşit olmadığından, eleman uzar. Zamovchuvannyam'ın önemi. |
ilk | Güç anlamında gücün önemini ortaya koyar. |
miras almak | Anavatan unsurunun gücünün öneminin azalması. |
Küçük 11. Diğer esnek elemanların doğrulanması
sözdizimi
Esnek konteyner (ekran: -webkit-flex; ekran: esnek;).esnek öğe (-webkit-align-self: merkez; kendini hizala: merkez;)
6.3. Esnek konteyner satırlarının değişimi: hizalama içeriği
Enine eksende ek alan bulunan esnek bir kaptaki hizalanmış sıraların gücü, içeriğin gerekçelendirilmesinin ek gücü için baş eksenindeki bitişik elemanların hizalanmasına benzer. Güç, tek sıralı esnek bir konteynere akmaz. Chi azalmaz.
Anlam: | |
esnek başlangıç | Sıralar, esnek kabın koçanına kadar düz bir şekilde döşenir. İlk sıranın kenarı esnek kabın kenarına yaslanacak şekilde yerleştirilir, dış yüzey ön sıraya yaslanacak şekilde yerleştirilir. |
esnek uçlu | Sıralar esnek kabın sonuna kadar düz bir şekilde döşenir. Geri kalan sıranın kenarı esnek kabın kenarına yerleştirilir, ön kaplama bir sonraki sıraya yerleştirilir. |
merkez | Sıralar doğrudan esnek kabın ortasına yerleştirilir. Sıralar birer birer yayılır ve esnek kabın ortasında, esnek kap yerine koçan kenarı ile ilk sıra arasında ve esnek kap yerine uç kenar ile geri kalan com satırı arasında eşit bir kenarla hizalanır. |
arasındaki boşluk | Satırlar esnek kapta eşit olarak dağıtılır. Büyük alan negatiftir veya esnek kapsayıcıda yalnızca bir esnek çizgi vardır ve değer flex-start ile aynıdır. Başka bir durumda, ilk sıranın kenarı, esnek kap yerine uç kenara aynı hizada yerleştirilir, geri kalan sıranın kenarı, esnek kap yerine uç kenara aynı hizada yerleştirilir. Herhangi iki sıra arasında bir çizgi olacak şekilde bölme sıralarını yeniden düzenleyin. |
uzay çevresinde | Sıralar, her iki uçta yarım aralık olacak şekilde esnek kaplarda eşit olarak dağıtılır. Açık alan negatif olduğundan değer merkez merkezle aynıdır. Diğer bir durumda sıralar, iki sıra arasındaki çizgi aynı olacak şekilde dağıtılır ve esnek kap yerine birinci/geri kalan sıralar ile kenarlar arasındaki çizgi, çizginin yarısı kadar olacak şekilde dağıtılır. satırlar. |
uzatmak | Zamovchuvannyam'ın önemi. Esnek eleman sıraları, mevcut alanın tamamını kaplayacak şekilde eşit şekilde gerilir. Boş alan negatifse anlam esnek başlangıçla aynıdır. Aksi takdirde boş alan, enine boyutlarından daha büyük olan sıralar arasında eşit olarak bölünecektir. |
ilk | Güç anlamında gücün önemini ortaya koyar. |
miras almak | Anavatan unsurunun gücünün öneminin azalması. |
sözdizimi
Esnek kapsayıcı (ekran: -webkit-flex; -webkit-flex-flow: satır sarma; -webkit-align-content: esnek uç; ekran: esnek; esnek akış: satır sarma; hizalama içeriği: esnek uç ; yükseklik: 100px;)