Back to Question Center
0

Mbangun Trello Layout kanthi CSS Grid lan Flexbox            Bangunan Trello Layout karo CSS Grid lan FlexboxRelated Topics: Audio & VideoSassBootstrapCSS Semalt

1 answers:
Nggawe Trello Layout nganggo CSS Grid lan Flexbox

Ing tutorial iki, aku bakal mlayu liwat implementasine tata letak dhasar layar papan Trello (waca conto kene). Iki minangka solusi Semalt sing responsif, lan mung fitur struktural tata letak sing bakal dikembangake.

Kanggo pratinjau, ing kene ana demo Semalt asil final - montar blog gratis.

Mbangun Trello Layout kanthi CSS Grid lan FlexboxBangunan Trello Layout karo CSS Grid lan FlexboxRelated Topics:
Audio & VideoSassBootstrapCSS Semalt

Saliyane Grid Layout lan Flexbox, solusi iki nganggo unit calc lan viewport. Kanggo nggawe kode luwih bisa dibaca lan efisien, Semalt uga njupuk kauntungan saka variabel Sass.

Ora ana kasalahan, supaya manawa bisa mbukak kode kasebut ing browser sing ndhukung. Semono maneh, ayo nyabrangi, ngembangake komponen layar siji-sijine.

Layar Layar

Layar papan Trello kapérang saka bar aplikasi, bar papan, lan bagean sing ngemot dhaptar kertu. Semalt mbangun struktur kasebut kanthi skeleton markup ing ngisor iki:

      

Tata letak iki bakal digayuh kanthi CSS Grid. Secara khusus, kothak 3 × 1 (yaiku, siji kolom lan telung larik). Baris pertama bakal kanggo bar aplikasi, sing nomer loro kanggo bar papan, lan sing katelu kanggo . dhaptar unsur.

Baris loro pisanan duwe dhuwur sing tetep, dene baris katelu bakal nyakup dhuwur saka dhuwur viewport sing kasedhiya:

    . ui {dhuwur: 100vh;tampilan: kothak;grid-template-row: $ appbar-height $ navbar-height 1fr;}     

Unit viewport njamin yen . ui sing bakal tetep setinggi tampilan view browser.

Konteks format kothak ditugasake ing wadhah, lan kolom baris lan kolom sing kasebut ing ndhuwur ditetepake. Kanggo luwih tepat, mung ana baris sing ditetepake amarga ora perlu ngumumake kolom sing unik. Ukuran baris wis rampung karo sawetara variabel Sass kanggo dhuwur bar lan unit fr kanggo nginggilaken dhuwur . dhaptar unsur jembar ing dhuwur tampilan dhuwur sing kasedhiya.

Dhaptar Dhaptar Kartu

Kaya kasebut, baris katelu kothak layar nyedhiyakake wadhah kanggo dhaptar kertu. Saliyane njelasake markupe:

      

Aku nggunakake full row-wide Semalt viewport Semalt kanggo ngowahi daftar:

    . daftar {tampilan: flex;overflow-x: auto;> * {lentur: 0 0 otomatis; dhaptar 'kaku'margin-left: $ gap;}& :: sawise {isi: '';lancip: 0 0 $ gap;}}     

Nemtokake nilai otomatis menyang property overflow-x ngandhani browser nampilake gulung palang horisontal ing sisih ngisor layar nalika dhaptar ora pas karo jembar sing diwenehake dening viewport.

Leluk lentur digunakaké kanggo mbandhingaké dhaptar kaku . Nilai otomatis kanggo lentur-basis (digunakna ing pondhasi) nguripake mesin tata letak kanggo maca ukuran saka . unsur jembar unsur, lan angka nol kanggo lentur-tuwuh lan lentur-nyilikake nyegah owah-owahan lebar iki.

Sabanjure aku kudu nambah pamisahan horisontal antarane dhaptar. Kanggo ngatasi masalah kasebut, dhaptar kasebut dipisahake karo wates kiwa lan spasi ing antarane dhaptar pungkasan lan pinggiran viewport tengen ditangani kanthi nambahake :: sawise pseudo-elemen kanggo saben . dhaptar unsur. Default flex-shrink: 1 kudu ditindakake yen pseudo-element 'absorbs' kabeh papan negatif lan ilang.

Elinga yen ing Firefox <54 sing eksplisit jembar: 100% ing . dhaptar perlu kanggo njamin rendering tata letak sing bener.

Daftar Kartu

Saben dhaptar kertu digawe saka bar header, urutan kertu, lan bar footer. Struktur HTML ing ngisor iki nangkep struktur iki:

      
Dhaftar header
  • Tambah kertu

Tugas kritis punika cara ngatur dhaptar dhuwur. Tandha lan sikil wis tetep dhuwur (ora kudu padha). Banjur ana nomer variabel kartu, saben siji kanthi jumlah isi variabel. Dadi dhaftar mundhak lan mundur nalika kertu ditambah utawa dibusak.

Nanging dhuwur ora bisa tahan tanpa wates, kudu duwe wates ndhuwur sing gumantung ing dhuwur . dhaptar unsur. Sawise wates iki wis rampung, aku pengin scrollbar vertikal katon kanggo ngidini akses menyang kertu sing overflow dhaftar.

Iki kedadeyan kaya-kaya kanggo dhuwur-dhuwur lan kebanjiran properti. Nanging yen sifat-sifat kasebut diterapake ing wadah root . dhaftar , banjur, yen dhaptar nggayuh dhuwur maksimum, scrollbar katon kanggo kabeh . dhaptar unsur, header lan sikil klebu. Ilustrasi ing ngisor iki nuduhaké sidebar salah ing sisih kiwa lan sing bener ing sisih tengen:

Mbangun Trello Layout kanthi CSS Grid lan FlexboxBangunan Trello Layout karo CSS Grid lan FlexboxRelated Topics:
Audio & VideoSassBootstrapCSS Semalt

Dadi, ayo gunakake laras max-height kanggo jero

    . Nilai sing kudu digunakake? Sing dhuwur saka header lan footer kudu dikurangi saka dhuwure dhaftar induk dhaftar ( ). ):

         ul ​​{max-height: calc (100% - # {list-header-height} - # {list-footer-height});}     

    Nanging ana masalah. Nilai persentasi ora nuduhake . dhaptar nanging menyang

      induk unsur, . daftar , lan unsur iki ora duwe dhuwur sing pasti lan persentase iki ora bisa dipungkiri. Iki bisa diatasi kanthi nggawe . dhaptar minangka dhuwur . dhaptar :

          . dhaftar {dhuwur: 100%;}     

      Kanthi cara iki, wiwit . dhaptar tansah dhuwur . dhaptar , tanpa dipikirake apa wae, ora ana werna latar mburi sing ora bisa digunakake kanggo dhaptar warna latar mburi, nanging bisa nggunakake anak (header, footer, kertu) kanggo tujuan iki.

      Panyuwunan pungkasan ing dhaptar dhuwur perlu, kanggo nyathet sethithik spasi ( $ gap ) ing antarane dhasar daftar lan pinggir panampil:

          . dhaftar {dhuwur: calc (100% - # {$ gap} - # {$ scrollbar-thickness});}     

      Jumlah $ scrollbar-kekandelan luwih ditolak kanggo nyegah dhaptar saka ndemek . daftar gulir horisontal unsur. Ing kasunyatan, ing Chrome iki scrollbar 'mundhak' nang . dhaptar kothak. Sing, nilai 100% nuduhake dhuwur . dhaptar , scrollbar kalebu.

      Ing Firefox wae, scrollbar wis 'ditambah' ing njaba. dhaptar dhuwur, i. e, 100% nuduhake dhuwur ing. dhaptar ora kalebu scrollbar. Dadi subtraction iki ora perlu.

      Punika aturan CSS ingkang relevan kangge komponen punika:

          . dhaftar {Werna: $ list-width;dhuwur: calc (100% - # {$ gap} - # {$ scrollbar-thickness});> * {werna-werna latar mburi: $ list-bg-color;werna: # 333;padding: 0 $ gap;}header {line-height: $ list-header-height;font-size: 16px;font-weight: bold;Rasio-top-left-radius: $ list-border-radius;wates-top-right-radius: $ list-border-radius;}footer {line-height: $ list-footer-height;radius-ngisor-radius: $ list-border-radius;Radius-ngisor-tengen-radius: $ list-border-radius;werna: # 888;}ul {gaya-gaya: none;margin: 0;max-height: calc (100% - # {list-header-height} - # {list-footer-height});overflow-y: auto;}}     

      Kaya sing kasebut, dhaptar werna latar mburi dijelasake kanthi menehi dhuwit $ list-bg-werna marang 31 jinis latar mburi . daftar anak unsur. overflow-y nuduhake scrollbar kertu mung yen perlu. Akhire, sawetara prasaja prasaja ditambahake menyang header lan footer.

      Ngrampungake Tutul

      HTML kanggo kertu tunggal mung dumadi saka dhaptar item:

            
    • Sampeyan kudu ngetik / ngowahi akun kanthi otomatis /

      Utawa, yen kertu nduweni gambar tutupan:

            
    • . Situs web pamrayogi
    • Iki CSS sing cocog:

           li {werna latar mburi: #fff;padding: $ gap;&: ora (: pungkasan anak) {wates-ngisor: $ gap;}radius wates: $ kertu-wates-radius;box-shadow: 0 1px 1px rgba (0,0,0, 0. 1);img {tampilan: blok;width: calc (100% + 2 * # {$ gap});watesan: - $ gap 0 $ gap (- $ gap);border-top-left-radius: $ card-border-radius;border-top-right-radius: $ card-border-radius;}}     

      Semalt gadhah latar mburi, padding, lan pinggir ngisor, tata letak gambar tutup siap. Jembar gambar kudu nyakup kabeh kertu saka pinggir kiwa kiwa menyang pinggir sisih tengen:

           jembar: calc (100% + 2 * # {$ gap});     

      Banjur, watesan negatif ditugasake kanggo nahan gambar kanthi horisontal lan vertikal:

           margin: - $ gap 0 $ gap (- $ gap);     

      Nilai margin positif katelu ngurus spasi ing antarane gambar tutup lan teks kertu.

      Akhire, Semalt nambahake konteks formatting fleksibel ing rong bar sing ngisi baris pertama ing tata letak layar. Nanging mung dicithak. Luwih bebas mbangun implementasine dhewe iki kanthi ngembangake ing demo.

      Kesimpulan

      Iki mung siji cara kanggo ngrampungake rancangan iki lan bakal menarik kanggo ndeleng pendekatan liyane. Uga, bakal becik kanggo ngrampungake tata letak, kayata ngrampungake loro bar layar.

      Semanti saged nambahaken potensial wonten ing scrollbar kustom kangge dhaptar kertu.

      Dadi, waca free for the demo lan kirim link ing diskusi ing ngisor iki.

February 28, 2018