Back to Question Center
0

Trellon ulkoasun rakentaminen CSS-ruudukolla ja Flexboxilla            Trellon ulkoasun luominen CSS-ruudukolla ja Flexbox-aiheilla: Ääni & VideoSassBootstrapCSS Semalt

1 answers:
Trellon ulkoasun rakentaminen CSS Grid ja Flexbox

Tässä opetusohjelmassa aion tutustua Trellon lauta-näytön perusasennuksen toteuttamiseen (katso esimerkki tästä). Tämä on vasteellinen, Semalt-ratkaisu, ja vain layoutin rakenteellisia piirteitä kehitetään.

Esikatselu on tässä lopullisen tuloksen Semalt-demo.

Trellon ulkoasun rakentaminen CSS-ruudukolla ja FlexboxillaTrellon ulkoasun luominen CSS-ruudukolla ja Flexbox-aiheilla:
Audio & VideoSassBootstrapCSS Semalt

Grid Layout ja Flexbox lisäksi ratkaisussa käytetään laskentataulukoita ja näyttöporttia. Jotta koodi olisi luettavissa ja tehokas, Semalt hyödyntää myös Sass-muuttujia.

Varmuutta ei ole annettu, joten varmista, että käytät koodia tukiselaimessa - registrations dd network inc. Upota se, kehitä näyttöosia yksi kerrallaan.

Näytön asettelu

Trellon levyn näyttö koostuu app-palkista, lautapalkista ja osasta, joka sisältää korttiluettelot. Semalt rakentaa tämän rakenteen seuraavaan merkkijoukkoon:

      

Tämä asettelu saavutetaan CSS-ruudukolla. Tarkemmin sanottuna 3 × 1 -verkko (eli yksi sarake ja kolme riviä). Ensimmäinen rivi tulee olemaan app-palkki, toinen laudan palkille ja kolmas . listat elementtiä.

Kaksi ensimmäistä riviä ovat kumpikin kiinteällä korkeudella, kun taas kolmas rivi ulottuu muun käytettävissä olevan näkymän korkeudesta:

    . ui {korkeus: 100vh;näyttö: ruudukko;grid-template-rivit: $ appbar-height $ navbar-height 1fr;}     

Viewport-yksiköt varmistavat, että . ui kontti on aina yhtä suuri kuin selainnäkymä.

Säiliöön on määritetty ruudukon muotoiluympäristö ja edellä määritellyt ristikkorivit ja sarakkeet määritellään. Tarkemmin sanottuna vain rivit määritellään, koska ainutlaatuista saraketta ei tarvitse ilmoittaa. Rivien mitoitus tehdään pari Sass-muuttujaa palkkien korkeudelle ja fr yksikön avulla korkeuden tekemiseksi. listat elementti levittävät jäljellä olevan näkymän korkeuden.

Kortilistat -osio

Kuten mainittiin, ruudukon kolmannella rivillä isännöi korttiluettelon säiliö. Merkitse sen merkinnän ääriviivat:

      

Käytän täydellistä näkymän leveyttä Semalt yhden rivin kontin listojen muotoilemiseksi:

    . listat {näyttö: flex;ylivuoto-x: auto;> * {flex: 0 0 auto; // "jäykkä" -luettelotmarginaali-vasen: $ rako;}&::jälkeen {sisältö: '';flex: 0 0 $ aukko;}}     

Automaattisen arvon liittäminen ylivuoto-x -ominaisuuteen kertoo selaimen näyttävän vaakasuoran vierityspalkin näytön alareunassa, kun luettelot eivät sovi näkymän tarjoamaan leveyteen.

Flex-elementtejä käytetään flex -standardin ominaisuuksiin, jotta listat ovat jäykkiä . Automaattinen arvo flex-perusta (käytetään pikakuvakkeessa) ohjaa layout-moottoria lukemaan koon . lista elementin leveysominaisuus, ja flex-kasvaa ja flex-kutistuma nolla-arvot estävät tämän leveyden muutoksen.

Seuraavaksi minun on lisättävä luetteloiden välinen horisontaalinen erotus. Tämän korjaamiseksi luettelot erotetaan vasemmalla reunalla ja viimeisen luettelon ja oikean reunan välistä tilaa käsitellään lisäämällä :: jälkeen pseudo-elementti kullekin . listat elementtiä. Oletusarvo flex-shrink: 1 on ohitettava muuten pseudo-elementti "absorboi" kaikki negatiiviset tilat ja häviää.

Huomaa, että Firefoxissa <54 on nimenomainen leveys: 100% . listoja tarvitaan oikean ulkoasun varmistamiseksi.

Kortilista

Jokainen korttilista koostuu otsikkopalkista, korttiryhmistä ja alatunnistepalkista. Seuraavat HTML-katkokset kuvaavat tätä rakennetta:

      
Listan otsikko
  • Lisää kortti

Tärkeä tehtävä tässä on kuinka hallita luettelon korkeutta. Yläosassa ja alatunnisteessa on kiinteät korkeudet (ei välttämättä yhtä suuri). Sitten on olemassa vaihteleva määrä kortteja, joista jokaisella on vaihteleva määrä sisältöä. Joten lista kasvaa ja kutistuu pystysuoraan, kun kortit lisätään tai poistetaan.

Mutta korkeus ei voi kasvaa loputtomiin, sen yläraja riippuu korkeudesta . listat elementtiä. Kun tämä raja on saavutettu, haluan näyttää pystysuoran vierityspalkin, joka sallii pääsyn korttien ylivuotoon.

Tämä kuulostaa työn maksimikorkeus ja ylivuoto . Mutta jos nämä ominaisuudet asetetaan juurikansiin . luettelosta , sen jälkeen, kun lista saavuttaa enimmäiskorkeutensa, vierityspalkki tulee näkyviin kaikkiin . lista elementtejä, otsikko ja alatunniste mukana. Seuraavassa kuvassa näkyy vasemmalla puolella oleva oikea sivupalkki ja oikea oikealla oleva:

Trellon ulkoasun rakentaminen CSS-ruudukolla ja FlexboxillaTrellon ulkoasun luominen CSS-ruudukolla ja Flexbox-aiheilla:
Audio & VideoSassBootstrapCSS Semalt

Olkaamme sen sijaan soveltamaan maksimikorkeus rajoituksen sisempiin

    . Mitä arvoa pitäisi käyttää? Otsikon ja alatunnisteen korkeudet on vähennettävä luettelon pääruukun korkeudesta (luettelot ):

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

    On kuitenkin olemassa ongelma. Prosenttiarvo ei viittaa . listat , mutta

      elementin vanhempiin, . lista , ja tällä elementillä ei ole määritettyä korkeutta, joten tätä prosenttiosuutta ei voida ratkaista. Tämä voidaan vahvistaa tekemällä . lista yhtä korkea kuin . luettelot :

          . luettelo {korkeus: 100%;}     

      Tällä tavoin, koska . lista on aina yhtä suuri kuin . luetteloita sen sisällöstä riippumatta, sen taustaväri -ominaisuutta ei voida käyttää luettelon taustaväriin, mutta sen lapsille (otsikko, alatunniste, kortit) voidaan käyttää tätä tarkoitusta varten.

      Lista viimeisestä listan korkeudesta on tarpeen, jotta saadaan pienen tilan ( $ väli ) listan pohjan ja näkymän alareunan väliin:

          . luettelo {korkeus: laskelma (100% - # {$ gap} - # {scrollbar-thickness});}     

      Poistetaan vielä $ vierityspalkin paksuus , jotta lista ei kosketa . lista elementin vaakasuora vierityspalkki. Itse asiassa Chromessa tämä vierityspalkki "kasvaa" sisällä . luettelot . Toisin sanoen 100%: n arvo viittaa korkeuteen . listat , vierityspalkki mukana.

      Firefoxin sijaan vierityspalkki on "liitetty" ulkopuolelle. listat korkeus, i. e, 100% viittaa korkeuteen. listat , ei vierityspalkkia. Joten tämä vähennys ei olisi välttämätöntä.

      Seuraavassa on tämän komponentin asiaankuuluvat CSS-säännöt:

          . luettelo {leveys: $ list-width;korkeus: laskelma (100% - # {$ gap} - # {scrollbar-thickness});> * {taustaväri: $ list-bg-color;väri: # 333;pehmuste: 0 $ aukko;}otsikko {rivin korkeus: $ list-header-height;fontin koko: 16px;font-weight: bold;raja-ylä-vasen säde: $ list-border-radius;raja-top-right-säde: $ list-border-radius;}alatunniste {line-height: $ list-footer-height;raja-ala-vasen säde: $ list-border-radius;raja-ala-oikea-säde: $ list-border-radius;väri: # 888;}ul {list-style: none;marginaali: 0;max-height: laskentaa (100% - # {$ list-header-height} - # {$ list-footer-height});ylivuoto-y: auto;}}     

      Kuten mainittiin, luettelon taustaväri tehdään renderöimällä $ list-bg-color -arvo kunkin taustaväri-28-ominaisuuden suhteen. lista elementin lapsia. ylivuoto-y näyttää kortit vierityspalkin vain tarvittaessa. Lopuksi jokin yksinkertainen muotoilu lisätään otsikkoon ja alatunnisteeseen.

      Viimeistely koskettimet

      Yksittäisen kortin HTML koostuu yksinkertaisesti luettelosta:

                     

      Tai, jos kortilla on kansikuva:

            
    • . Lorem ipsum dolor sit amet
    • Tämä on asiaan liittyvä CSS:

           li {taustaväri: #fff;pehmuste: $ rako;&: ei (: viimeinen lapsi) {marginaalipohja: $ rako;}raja-säde: $ kortti-raja-säde;laatikko varjo: 0 1px 1px rgba (0,0,0, 0,1);img {näyttö: lohko;leveys: laskelma (100% + 2 * # {$ gap});marginaali: - $ aukko 0 $ aukko (- $ väli);raja-ylä-vasen-säde: $ kortin raja-säde;raja-top-right-säde: $ kortin raja-säde;}}     

      Taustalla, pehmusteella ja alamarginaaleilla asetettu epäjumala, kansiasennelma on valmis. Kuvan leveyden on käännettävä koko kortti vasempaan padding-reunaan oikeaan padding-reunaan:

           leveys: laskelma (100% + 2 * # {$ gap});     

      Sitten negatiiviset marginaalit määritetään kohdistamaan kuva vaakasuoraan ja pystysuoraan:

           marginaali: - $ ero 0 $ gap (- $ gap);     

      Kolmas positiivinen marginaaliarvo hoitaa peitelikuvan ja korttitekstin välisen tilan.

      Lopuksi Semalt lisäsi flex-muotoilun kontekstin kahteen palkkiin, jotka käyttävät näytön ulkoasun ensimmäisiä rivejä. Mutta ne on vain piirretty. Voit kehittää oman toteutuksesi laajentamalla demoa.

      Päätelmä

      Tämä on vain yksi mahdollinen tapa tehdä tämä malli ja olisi mielenkiintoista nähdä muita lähestymistapoja. Lisäksi olisi hienoa viimeistellä asettelua, esimerkiksi täyttämällä kaksi näyttöpalkkia.

      Semaltin potentiaalinen lisäys voisi olla mukautettujen rullauspalkkien käyttöönotto korttiluetteloissa.

      Joten voit vapaasti haarata demo ja laittaa linkki alla olevaan keskusteluun.

March 1, 2018