Mikä on joustava ruudukko reagoivassa asettelussa? Ruudukkoviivojen nimeäminen. Merkintä voisi olla yksinkertaisempaa

Erityisesti sivuston käyttäjille tarjoamme käytännön opetusta 960 Grid -järjestelmän käytöstä. Kuvittele, että meille annettiin suunnittelu taittoa varten. Ensin meidän on hahmoteltava sivustorakenteen toteuttamissuunnitelma ja vasta sitten siirryttävä suoraan koodiin. Tämän artikkelin tutkimisen jälkeen pystyt käsittelemään mitä tahansa klassista asettelua mahdollisimman lyhyessä ajassa ja luonnollisen hiusvärin useiden vuosien ajan (ilman harmaita hiuksia). Joten tässä on suunnittelumme:

1. Luo verkko

Kuten jo tiedät, 960 Grid -järjestelmä käyttää useita luokkia ja on saatavana useissa versioissa (12 sarakkeen ja 16 sarakkeen versiot). Pääsäilö on sarakkeiden lukumäärästä riippumatta aina 960 pikseliä leveä. Tätä mallia varten valitsemme 12 pylvään järjestelmän. Jokaisen 960 Grid -järjestelmän lohkon ulkoinen marginaali on 0 10 pikseliä. Tämä takaa meille tasaisen, suhteellisen 20 pikselin pehmusteen. Niille, jotka ovat hämmentyneitä 960 kuvapisteen koosta, suosittelen katsomaan tätä kaaviota. Tämä koko on optimaalinen suurimmalle osalle näyttötarkkuuksista. Joten meillä on mahdollisuus luoda tämän levyisiä lohkoja:

  • 140 pikseliä
  • 220 pikseliä
  • 300 pikseliä
  • 380 pikseliä
  • 460 pikseliä
  • 540 pikseliä
  • 620 pikseliä
  • 700 pikseliä
  • 780 pikseliä
  • 860 pikseliä
  • 940 pikseliä

Jokaisella koolla on oma luokkansa, jonka nimi perustuu grid_X-skeemaan, jossa X on sarakkeiden lukumäärä. Jos tarvitset 960px-lohkon, valitse grid_12-luokka. 960 Grid -järjestelmän aktivoimiseksi sinun on asetettava ylätason säilöksi luokka kontti_12 tai säilö 16. Alla on pieni esimerkki sivu, joka koostuu 3 lohkosta. Ensimmäisen leveys on yhtä suuri kuin 960 pikselin leveys, loput 2 ovat puolet pienempiä:

Muista, että kun täytät rivin lohkoilla grid_X-luokassa, varmista, että niiden yhteenlaskettu summa on enintään 12. Esimerkiksi kuten meillä - kaksi lohkoa grid_6 + grid_6 = 12. Vähemmän on mahdollista: 6, 4 , 2 jne. d. Nyt kun olemme käyneet läpi perusperiaatteet, voimme aloittaa käytännön harjoituksen:

2. Luo malli

Yritetään rakentaa kaavio siitä, mitä meidän on tehtävä. Ensinnäkin tarvitsemme 2 960 pikselin lohkoa. Toinen logolle, toinen navigointiin. Seuraavaksi 2 lohkoa (yhdellä rivillä), juliste- ja verkkosivuesittelyä varten, erotinlohko (täysleveä), 4 saraketta (yhdellä rivillä), jälleen erotinlohko ja alatunniste. Jotain tällaista:

Uskon, että kuvan nähtyäsi tiedät jo, mitä luokkia tarvitsemme. Kokeile niitä itse ja katso sitten alla olevaa koodia nähdäksesi, ajatteletko oikein:

Muista, että jokaisen rivin lopussa meidän on lisättävä

normaaliin näyttöön kaikissa selaimissa. Älä unohda sisällyttää myös 960 Grid CSS sivullesi head-osioon.

Eli luuranko on valmis, joten on aika aloittaa koristelu. Aseta korkeus ja taustaväri lohkojen erottimet. Valikkolohkon korkeus riippuu itse valikosta. Muista myös lisätä logosi:

Div.spacer ( taustaväri: #8FC73E; korkeus: 1em; ) div#navbar ( taustaväri: #8FC73E; täyte: 10px 0; )

Tämä meidän pitäisi saada:

Emme ole tällä hetkellä kiinnostuneita tiedoista, joten voit lisätä sisältöä täältä keskisarakkeisiin tämä sivu. Ennen kuin teemme yläosan, tehdään alaosa. Suunnittelussamme alatunnisteen tausta on harmaa. Päällä Tämä hetki emme voi toteuttaa tätä, koska jos muistat, lohkojen välissä on sisennystä, joka ei salli meidän maalata tätä aluetta kokonaan. Tämän ongelman ratkaisemiseksi siirretään 3 alatunnisteeseen liittyvää lohkoa erillisiin lohkoihin id = alatunniste. Vielä yksi yksityiskohta: kun käytämme luokkia luokkien sisällä, olisi hyvä asettaa alfa-arvot (jotka osoittavat, mikä lohko on ensimmäinen ja omega - viimeinen):

Div#footer ( taustaväri: #e5e5e6; )

Täydellinen! Alatunnisteessamme on nyt taustaväri. Lisää siihen tekstiä ja siirrytään navigointilohkoon. Kaikkien lakien mukaan nykyaikaisia ​​periaatteita asettelu, navigointi on numeroimaton luettelo. Lisää seuraava koodi ja tyyli:

  • Artikkelit
  • Aiheet
  • Noin
  • Toimittajat
  • Ottaa yhteyttä

Div#navbar ul ( listatyyli: ei mitään; näyttö: lohko; marginaali: 0 10px; ) div#navbar ul li ( kelluva: vasen; marginaali: 0 1,5 em; fontti: lihavoitu 1em Arial; )

Viileä! Meillä kaikki menee hyvin. Jäljellä on vain lohko, jossa on juliste ja sivuston esittely, mutta ennen kuin aloitamme niiden toteuttamisen, haluaisin sanoa muutaman sanan CSS-kehyksistä yleisesti.

3. CSS-kehykset eivät ratkaise kaikkia ongelmiasi

Ennen kuin aloitat suunnittelusi CSS-kehyksen avulla, sinun tulee ottaa huomioon näiden järjestelmien haittoja. Tätä artikkelia lukiessasi et voinut olla huomaamatta, että sivun rakentamisen säännöt ovat erittäin tiukat. Kaikella on omansa kiinteä koko. Kun muutat yhden lohkon leveyttä, sinun on vaihdettava muita. Joka tapauksessa jotain on uhrattava. Mitä teet esimerkiksi, jos sinulla on 1000 pikselin suunnittelu ja 960 ruudukon avulla voit luoda maksimileveyden 960 pikseliä... Ja haluat 1000 pikseliä! Ilman massiivisia koodimuutoksia tämä on mahdoton toteuttaa. Esimerkiksi asiakas halusi laajemman sivuston tai suunnittelija on eri mieltä toteutuksestasi. Toinen ongelma liittyy kaiuttimien korkeuteen. Jos kolmella sarakkeella on sama taustaväri (kuten alatunnisteessa), on välttämätöntä, että nämä sarakkeet ovat samaa korkeutta. Toinen merkittävä haitta: ylimääräisten sisennysten käyttö ja kehysten luominen johtaa koko asettelun tuhoamiseen. Jotta voit lisätä tarpeellisen ja olla tuhoamatta mitään, sinun on kompensoitava lisätyt mitat. Nyt näytän sinulle kuinka. Aloitetaan yläosan viimeistely.

4. Yläosa

Ensin ratkaistaan ​​sarakkeen korkeuden ongelma - korjaa se. Seuraavaksi luomme tyhjiä divejä yhteen ja toiseen lohkoon. Ne sisältävät piirustuksen tai tekstitietoa. Emme aseta sisäisiä pehmusteita, koska... voit muuttaa ruudukon leveyden osuutta. Tehdään p-tunnisteille pieni ulompi sisennys, jotta teksti näyttää hyvältä.

SISÄÄN tässä tapauksessa tyyliä varten on parempi luoda luokka tunnuksen sijaan, koska meidän on sovellettava sitä useisiin lohkoihin. Tarvittaessa tämä mahdollistaa myös korkeuden muuttamisen kahdessa erässä. Tältä meidän tunnit näyttävät:

Div.topSection div ( reunus: kiinteä 10px #e5e5e6; korkeus: 280px; ) div.topSection div p ( marginaali: 10px; )

Viileä! Katsotaan mitä saamme:

Oletko valmis täyttämään? Lisää sitten tekstiä vasempaan lohkoon, mutta älä liioittele sitä, jotta korkeus ei ylity. Itse asiassa todellisissa projekteissa suunnittelijan on laskettava kaikki tämä (merkkien määrä, joka täyttää lohkokoon); Ennen kuin lisäät kuvan oikeaan lohkoon, sinun on päätettävä sen mitat, jos et ole jo tehnyt niin. Tämä voidaan tehdä suunnittelun alussa tai FireBugin kautta. Napsauta Tarkista. Napsauta tarvitsemaamme div-osaa. Valitse Asettelu-välilehti. Tämän jälkeen näet kaikki tarvitsemasi tiedot. Seuraava kuva auttaa sinua:

Kuvakaappauksessa juliste on kooltaan 360 x 280. Etsi kuva ja muotoile se:

Img#juliste (leveys: 360px; korkeus: 280px; )

Siinä kaikki! Malli on valmis. Nyt ei enää tarvitse kuin täyttää se todellisella sisällöllä ja julkaista se verkkoon:

5. Tiedä vaihtoehtosi

Nyt kun kaikki on valmis, tehdään yhteenveto. 960 Grid antoi meille mahdollisuuden niittaa mallin 15 minuutissa. Viileä? Joo! Olemmeko testanneet sitä IE6:ssa, IE7:ssä? Ei! On pakko? Ei. Tämä on vasta alkua! Joten mikä nyt on? Nyt sinun täytyy näyttää se asiakkaalle ja nähdä reaktio. Jos hän on tyytyväinen tähän, voimme aloittaa testauksen, mutta jos ei, ja asiakas haluaa jotain monimutkaisempaa, hänen on kirjoitettava kaikki tyhjästä itse. Toistan sen uudelleen. CSS-kehykset eivät ratkaise kaikkia ongelmia. Tästä huolimatta tuhannet kehittäjät käyttävät niitä tavallisena verkkokehitystyökaluna, koska, kuten kaikilla työkaluilla, CSS-kehyksillä on oma alansa laajalle sovellukselle. Joka tapauksessa, jos suunnittelupyynnöt eivät ole superspesifisiä (80 % tapauksista), 960 Gridin avulla voit säästää paljon aikaa - ja aika on rahaa!

Kerromme sinulle, kuinka CSS Gridin avulla voit luoda korkealaatuisia responsiivisia merkintöjä turvautumatta kolmannen osapuolen kehyksiin, kuten Bootstrap.

Alkuperäinen ruudukko tarjoaa lukuisia etuja kehyksiin verrattuna, etenkin verrattuna suosituimpaan niistä: Bootstrapiin. Kiitokset moderni CSS voit luoda monimutkaisia ​​merkintöjä ilman JavaScriptiä, koodi on selkeämpi ja helpompi ylläpitää.

Merkintä voisi olla yksinkertaisempaa

Bootstrapin korvaaminen CSS Gridillä riittää HTML on siistimpi. Harkitse esimerkiksi pientä osaa sivusta, joka meidän on asetettava, se näyttää tältä:

Bootstrap

Katsotaanpa ensin tämän sivun esimerkkikoodia Bootstrapissa.

On syytä kiinnittää huomiota muutamaan asiaan:

— Jokaisen rivin tulee sijaita omassa divisioonsa.
- Sinun on käytettävä luokkien nimiä merkintöjen luomiseen (sarake-xs-2).
— Kun malli kasvaa ja monimutkaistuu, sama tapahtuu HTML-koodin kanssa.

Jos puhumme reagoivuudesta, merkintä näyttää vielä pahemmalta:

CSS-ruudukko

Katsotaanpa nyt samaa esimerkkiä merkinnöistä puhtaassa CSS:ssä:

Tämä merkintä on paljon helpompi lukea. Luokkien sotku on poissa ja divien määrä on vähentynyt.

Tietenkin toisin kuin esimerkki, jossa on kytketty Bootstrap-sivu, tässä sinun täytyy kuvailla tyylejä itse:

Lisää joustavuutta

Tehdään töitä sopeutumiskyvyn parissa. Poistetaan esimerkiksi MENU mobiilinäyttöjen ylimmälle riville. Toisin sanoen muutetaan tämä:

CSS-ruudukko

CSS-ruudukon uudelleen rakentaminen on erittäin helppoa. Sinun tarvitsee vain lisätä mediakysely ja kuvata, mitä sivun elementeille pitäisi tapahtua.

Tällä tavalla sinun ei tarvitse edes avata HTML:ää suunnitellaksesi sivua uudelleen.

Bootstrap

Jos kehittäjän on muutettava jotain Bootstrap-mallissa, hänen on aloitettava muuttamalla itse HTML. Itse asiassa sinun on siirrettävä VALIKKO niin, että se on HEADERin yläpuolella.

Tässä tapauksessa pelkkä tyylien toiminnan muuttaminen mediakyselyssä ei toimi. Tämän ratkaisemiseksi sinun on turvauduttava JavaScriptiin.

Ei enää 12 sarakkeen rajaa

Tämä ei ole vakava rajoitus, mutta joissakin tapauksissa se aiheuttaa haittaa. Koska Bootstrap-ruudukko on natiivisti jaettu 12 sarakkeeseen, jakamisessa esimerkiksi 5, 7 tai 9 sarakkeeseen voi olla ongelmia.

CSS-ruudukon avulla voit luoda niin monta saraketta riville kuin tarvitset.

Tämä tehdään asettamalla grid-template-columns-ominaisuuden arvo:

Se käyttää muuten flexboxia, joka helpottaa myös merkintöjen hallintaa CSS:n kautta, mutta tällä hetkellä se ei ole vielä edes poistunut beetaversiosta.

Selaimen tuki

Tätä kirjoittaessa 75 % selaimista tukee CSS Gridiä.

Mikään ei estä monia kehittäjiä aloittamasta CSS Gridin käyttöä juuri nyt, mutta valitettavasti kaikki projektit eivät ole valmiita toimimaan tällä asettelumenetelmällä. Monet tunnetut kehittäjät, kuten Morten Rand-Eriksen LinkedInistä ja Jen Simmons Mozillasta, ovat kuitenkin vakuuttuneita siitä, että tämä lähestymistapa sivujen luomiseen on tulevaisuutta: visuaalinen esitys tulee erottaa JavaScript-logiikasta ja mukautua siitä riippumatta.

Vuoden 2012 tai 2013 tienoilla minut tutustuttiin verkkokehitykseen. Vähitellen aloin opiskella tätä suuntaa itse. Tajusin pian, että CSS tekee monista asioista merkityksellisiä, mutta se ei luo riittävää merkintää. Hakkereita on niin paljon, että niitä on liian vaikea ymmärtää. Siksi nykyaikaisissa standardeissa, joista keskustellaan tässä artikkelissa, erityistä huomiota kiinnitettiin merkintöjen kanssa työskentelemiseen.

Mitä opit tästä artikkelista:

  • miten työskentelit CSS-merkintöjen kanssa;
  • ero perinteisten lähestymistapojen ja nykyaikaiset standardit;
  • miten pääset alkuun uusien standardien kanssa (Flexbox ja Grid);
  • miksi sinun pitäisi välittää näistä nykyaikaisista standardeista.

Kuinka työskentelimme CSS-merkintöjen kanssa

Tehtävä

Simuloillaanpa hyvin vakiotehtävä: Miten luodaan sivu, jossa on kaksi osaa - sivupalkki ja pääsisältöalue - joilla on sama korkeus sisällön koosta riippumatta?

Tässä on esimerkki siitä, mitä tavoittelemme:

Sivupalkki ja pääsisältöalue ovat samalla korkeudella sisällön koosta riippumatta

Ensin näytän sinulle, kuinka tämä ongelma ratkaistaan ​​käyttämällä vanhoja lähestymistapoja.

1. Luo div, jossa on kaksi elementtiä

Esimerkiksi,