Masonry-asettelu: CSS- ja JavaScript-tavat
Luo Pinterest-tyylisiä muurimaisia ruudukkoja CSS:n column-count-ominaisuudella ja JavaScript-varatoteutuksilla.
Masonry-asettelu: CSS- ja JavaScript-tavat on ilmainen CSS Academy-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu CSS Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. CSS Academy-kurssilla on yhteensä 4 oppituntia.
Mikä on Masonry-asettelu
Masonry-asettelu sijoittaa kohteet sarakkeisiin niin, että kukin kohde täyttää seuraavan vapaan pystysuuntaisen tilan Pinterestin tapaan. Sarakkeilla on sama leveys, mutta kohteiden korkeudet vaihtelevat. Tuloksena on tiivis ja visuaalisesti elävä ruudukko, jossa rivien väliin ei jää hukkatilaa.
CSS Grid Masonry (kokeellinen)
Chrome ja Firefox tukevat lippuasetuksen takana määritettä grid-template-rows: masonry. Kohteet sijoitetaan sarakkeisiin, mutta rivien korkeus määräytyy niiden sisällön mukaan, joten erikorkuiset kohteet pakkautuvat ilman aukkoja. Tämä on tulevaisuuden natiivi ratkaisu.
<div class="grid">
<div>1</div><div>2</div><div>3</div><div>4</div>
</div>CSS Columns -menetelmä
CSS Columnsilla voidaan luoda Masonry-tyyppinen asettelu: columns: 3; column-gap: 1rem. Kohteet virtaavat automaattisesti ylhäältä alaspäin kussakin sarakkeessa. Rajoitus on, että kohteet järjestetään sarake kerrallaan (sarakkeen 1 yläosa, sarakkeen 2 yläosa...) eikä rivi kerrallaan, mikä vaikuttaa lukujärjestykseen ja saavutettavuuteen.
Sarakkeiden katkeamisen estäminen
Estäkää kohteiden katkeaminen sarakkeiden välillä asettamalla kullekin kohteelle break-inside: avoid. Ilman tätä korkea kortti voi jakautua kahteen sarakkeeseen ja sisältö katketa keskeltä. Lisätkää tämä aina, kun käytätte CSS Columnsia korttimaiseen sisältöön.
JavaScriptin Masonry-kirjastot
David DeSandron kehittämä Masonry.js sijoittaa absoluuttisesti asemoidut kohteet uudelleen laskemalla sarakkeiden korkeudet ja sijoittamalla kunkin kohteen lyhimpään sarakkeeseen. Isotope laajentaa tätä lajittelulla ja suodatuksella. Molemmat tarvitsevat JavaScriptiä sijaintien laskemiseen ja asettamiseen.
CSS Gridin ja JavaScriptin yhdistelmäratkaisu
Kevyt lähestymistapa on määrittää grid kiinteine sarakkeineen ja yhden pikselin riveineen sekä asettaa kullekin kohteelle JS:llä grid-row-end: span N kohteen sisällön korkeuden ja rivikorkeuden perusteella. Kohteet säilyttävät grid-rivien tasauksen ja voivat silti olla erikorkuisia.
ResizeObserver uudelleenlaskentaan
Masonry-sijainnit vanhenevat, kun ikkunan koko muuttuu tai kuvat latautuvat. Käyttäkää ResizeObserveria koonmuutosten havaitsemiseen ja uudelleenlaskennan käynnistämiseen. Viivästyttäkää uudelleenlaskentaa, jotta laskentaa ei tehdä liikaa nopeiden koonmuutosten aikana.
Kuvien lataaminen ja asettelun vakaus
Tuntemattoman korkuiset kuvat pakottavat Masonry-asettelun laskemaan sijainnit uudelleen lataamisen jälkeen. Antakaa kaikille kuville eksplisiittiset width- ja height-määritteet, jotta selain varaa tilan ennen lataamista. Tämä estää sijaintien siirtymistä ja vähentää uudelleenlaskentakertojen määrää.
Infinite Scroll Masonry-asettelussa
Kohteiden lisääminen Masonry-asetteluun edellyttää vain niiden sarakkeiden uudelleenlaskentaa, joihin uudet kohteet vaikuttavat, eikä koko gridin laskemista uudelleen. Masonry.js:n kaltaiset kirjastot tukevat lisättyjen kohteiden animointia ja vaiheittaista asettelua ilman koko asettelun laskemista uudelleen jokaisen uuden erän yhteydessä.
Saavutettavuusnäkökohdat
Visuaalinen Masonry-järjestys poikkeaa DOM-järjestyksestä, kun asettelu tehdään JavaScriptillä. Varmistakaa, että sarkainjärjestys noudattaa DOM-järjestystä eli loogista lukujärjestystä eikä visuaalista sijaintia. Lisätkää tabindex harkiten tai luottakaa näppäimistönavigoinnissa luonnolliseen DOM-järjestykseen.
CSS-pohjaisen Masonry-asettelun kompromissit
CSS Columns on yksinkertainen eikä tarvitse JavaScriptiä, mutta lukujärjestys kulkee sarakkeittain eikä riveittäin, eikä lajittelu tai suodatus ole mahdollista. Grid Masonry ei vielä ole tuotantokäyttöön tuettu. JavaScriptillä toteutettu Masonry on monipuolinen, mutta kasvattaa kokoa ja aiheuttaa renderöintiviiveen, kun sijainnit lasketaan sisällön latauduttua.
Tietotesti
Mikä CSS-ominaisuus estää korttia jakautumasta kahteen CSS-sarakkeeseen?
Yhteenveto
Masonry-asettelu voidaan toteuttaa CSS Columnsilla (yksinkertainen, mutta järjestää sisällön sarakkeittain), kokeellisella grid-template-rows: masonry -määritteellä (tulevaisuuteen suuntautuva) tai JavaScript-kirjastoilla, kuten Masonry.js:llä (monipuolinen ja tukee lajittelua sekä suodatusta). Jokainen menetelmä sisältää kompromisseja yksinkertaisuuden, saavutettavuuden ja ominaisuuksien välillä.
Opi CSS tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 40
- Oppitunnit
- 159
Usein kysytyt kysymykset
Onko oppitunti ”Masonry-asettelu: CSS- ja JavaScript-tavat” ilmainen?
Kyllä – oppitunnin ”Masonry-asettelu: CSS- ja JavaScript-tavat” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko CSS Academy-kurssin, päivitä CoddyKit PROhon. CSS Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Masonry-asettelu: CSS- ja JavaScript-tavat”?
Luo Pinterest-tyylisiä muurimaisia ruudukkoja CSS:n column-count-ominaisuudella ja JavaScript-varatoteutuksilla. Harjoittelet CSS Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni CSS Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin CSS Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.
Kuinka kauan ”Masonry-asettelu: CSS- ja JavaScript-tavat”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä CSS Academy-oppitunnilla?
Kyllä. Jokainen CSS Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Kiinnittyvä alatunniste- ja sivupalkkiasettelu
- Holy Grail -asettelu Gridillä
- Masonry-asettelu: CSS- ja JavaScript-tavat
- Intrinsinen suunnittelu: sisältölähtöinen mitoitus