Denna handledning kommer att introducera dig till Pure, ett CSS-bibliotek av små moduler, som kan hjälpa dig att skriva helt responsiva layouter, på ett mycket snabbt och enkelt sätt. Under vägen leder jag dig genom att skapa en enkel sida för att lyfta fram hur du kan använda några av bibliotekets komponenter.
Varför skapa responsiva layouter?
Under de senaste åren i webbutveckling, tre Ord som studsar om och om igen är: Responsive Web Design (RWD). Vid den här tiden borde du redan veta vad det är, men bara om du missade det, här finns några resurser för att fylla i luckorna:
Artiklar på WebDesign Tuts+
Kurser på Tuts + Premium
Responsive Web Design av Ethan Marcotte
Men frågan är: Varför är du lyhörd? Svaret är att vi inte har någon kontroll över vilken upplösning nästa enhet kommer att använda när de besöker vår hemsida. Inte längre kan vi bara visa meningar som "Mest visade vid 1024x768 upplösning" (även om du fortfarande kan hitta dem på webben). En av de främsta orsakerna till detta fenomen var från tillväxten i bredd av PC-skärmar och även från spridningen av mobila enheter som är anslutna till Internet. Dessutom baseras på StatCounter, för närvarande ~ 16% av användarna är anslutna via en mobil enhet. Nu säger jag inte det RWD handlar bara om att optimera en webbplats för en viss skärmstorlek. Vad jag menar är att vi skapar en bra upplevelse för användare som besöker vår webbplats oavsett vilka enheter de använder.
Med det sagt är det också klart att inte alla vi arbetar för ett företag där varje person har en enskild roll (formgivare, utvecklare, testare osv.). Så, låt oss säga att du är en soloutvecklare, arbetar som frilansare och du vet inte mycket om webbdesign. Det finns många bibliotek tillgängliga som kan påskynda ditt arbetsflöde. De mest kompletta är säkert Boostrap och Foundation, men ibland kan de bli överkill och du kanske behöver något mindre. I dessa fall har ett nytt intressant projekt lanserats av Yahoo som vi kan använda, kallat Pure.
Vad är rent?
Att citera den rena webbplatsen är det en uppsättning små, lyhörda CSS-moduler som du kan använda i varje webbprojekt. Som sagt tidigare är det fullständiga biblioteket riktigt lätt, det är bara 4,2 kB minifierat och gzipped, men för att hålla din webbplats jämnare, kan du bara inkludera några av de tillgängliga modulerna. I princip består den av följande moduler:
Bas
Rutnät
formulär
Knappar
tabeller
menyer
En av de saker jag verkligen uppskattar om ren är att den bygger på Normalize.css, ett välkänt bibliotek som gör elementen mer konsekvent och i linje med moderna standarder och fungerar också i äldre webbläsare. Eftersom det är väldigt litet, erbjuder det inte en komplett lösning på alla dina problem, men det har flera förbyggda gemensamma UI-element som du kan hitta på många webbplatser på webben. En annan intressant egenskap hos Ren är att den är mycket utdragbar och anpassningsbar. Författarna använde SMACSS för att bygga den och alla sina klasser börjar med ren-, så att du enkelt kan känna igen dem.
Även om rent är ett intressant projekt att titta på, kom ihåg att det är riktigt nytt och kanske inte passar bra för stora projekt. Faktum är att den nuvarande versionen (0.2.0 vid tidpunkten för detta skrivande) har flera problem som du förmodligen inte skulle hitta i mer mogna ramar och dess dokumentation kan också förbättras. Ändå tyckte jag om det och var en föregångare, du har fördelen att studera och lära ren, från första början, vilket kan bli det nästa kända projektet på webben.
Låt oss se rena i åtgärd
De säger att en bild är värd tusen ord. För oss, som utvecklare och designers, är en demo som vi kan leka med ännu bättre. Så, för att se vad Pure kan göra för oss, låt oss skapa en grundläggande demo-app. Vår demo kommer att bestå av en enkel hemsida som innehåller lite information om mig själv (ibland skrämmer min fantasi mig). Bilden nedan visar vad slutresultatet ska se ut på en stor skärm:
Och följande bild visar istället hur den ska se ut på en smartphone:
Steg 1: Skapa den horisontella menyn
Som sagt har Pure flera förbyggda gemensamma element som du kan hitta på många webbplatser på webben. En horisontell meny är säkert en av dem och ger oss chansen att ta en titt på några av klasserna i menymodulen.
För att skapa detta med hjälp av HTML5 har vi vanligtvis en element som omsluter en oorderad lista som innehåller de viktigaste länkarna på vår hemsida. När listan är skapad måste vi visa den horisontellt. För att uppnå detta måste vi tillämpa tre klasser på listomslaget (): .pure-menyn, .ren-menu-open, och .ren-menu-horisontell. Den första klassen gäller regler som är gemensamma för alla menyer i Pure. De .ren-menu-open klassen används för att visa (istället för att dölja) listobjekten, medan .ren-menu-horisontell klassen är den som ansvarar för att visa listobjekten på samma rad. Observera att menyn som standard inte är centrerad.
För att förbättra användargränssnittet bör vi markera listobjektet som länkar till den aktuella sidan. Detta görs genom att tillämpa .ren-menu-selected klass till element du vill markera. Genom att göra så kommer färgen på texten att växla från grått till svart.
Den fullständiga koden i vår meny visas nedan:
Steg 2: Författarens Beskrivning
Efter menyn kan du se att vi har en idealisk "rad" som finns på vänster sida, ett foto och på höger sida, en liten beskrivning av mig. Denna "rad" är faktiskt en responsivt rutnät gjord av två gallerenheter, där den första förstör bilden och upptar 25% av sitt utrymme medan den andra omsluter beskrivningen och upptar resterande 75%, så länge skärmens bredd är större än 767px. Tvärtom, om skärmens bredd är lika med eller mindre, staplas nätenheterna och upptar 100% av den tillgängliga bredden. Observera att enheterna har en 100% bredd, så om elementen i dem är mindre i bredd, kommer de att uppta endast en del av enheten. För att se hur det fungerar kan du försöka ändra storlek på fönstret och lägga märke till hur fotot inte konsumerar 100% av bredden, samtidigt som nätenheterna staplas.
Som tidigare noterat har Pure en specifik modul för hantering av nät. För att deklarera ett lyhörda rutnät måste du på behållaren ange en klass som heter .ren-g-r. Rutenheterna delar i stället ett liknande namn, .ren-u - * - *, där den sista delen av klassen anger hur mycket utrymme den givna enheten tar upp. Om du till exempel tillämpar ett element på .ren-u-1-4 klass, det reserverar 25% av den tillgängliga bredden, som jag gjorde för fotot. Ett annat exempel kan vara .ren-u-2-3 vilket gör att enheten kan ta upp 66,6% av nätutrymmet.
Det här nätverket är väldigt intressant eftersom det kan spara mycket tid om du inte vet hur man hanterar flyta, klar, och andra regler för att skapa layouter. Dessutom kommer de att rädda dig från all smärta att hantera den lyhörda sidan av layouten.
Med det sagt ska koden som implementerar det första gallret se ut så här:
Aurelio De Rosa
Jag är en italiensk webb- och apputvecklare som har en kandidatexamen i datavetenskap och mer än 5 års erfarenhet av programmering för webben med HTML5, CSS3, JavaScript och PHP. Jag använder huvudsakligen LAMPA stack och ramar som jQuery, jQuery Mobile och Cordova (PhoneGap). Mina intressen inkluderar även webbsäkerhet, webbtillgänglighet, SEO och WordPress.
För närvarande arbetar jag självständigt med de citerade teknikerna. Jag är också en vanlig bloggare för flera nätverk (SitePoint, Tuts + och FlippinAwesome) där jag skriver artiklar om de ämnen som jag brukar arbeta med och mer.
Steg 3: Informationsnätet
Det andra och sista gallret är uppdelat i tre lika delar. Jag skapade dem för att visa dig andra delar av biblioteket, så du kan få en bra översikt över dem. Faktum är att den första enheten har ett bord, den andra har en form och den tredje har en vertikal meny.
Koden nedan visar hur du delar upp gallret i tre delar:
Låt oss nu undersöka varje enhet i det här svarsmätverket.
Steg 4: Ett svarande bord
En annan av de lediga modulerna i Pure, är tabeller. Som namnet säger innehåller det regler för att stile a
element och dess barn. Som standard kommer tabellerna att ha en vertikal kantlinje som används för att separat separera kolumner. Du kan dock även lägga till en horisontell gräns, tillämpa .ren-table-kantad klass eller visa endast den senare med hjälp av .ren-table-horisontell klass till
element. Dessutom kan du också skapa randiga tabeller som hjälper användaren att läsa data. För att uppnå detta har du två möjligheter. Den första kommer att fungera på webbläsare som stöder n: te-barn och består av att tillämpa .ren-table-striped klassnamn till
element. Den andra fungerar istället i alla webbläsare, inklusive Internet Explorer 8 och lägre, men den är mer verboserad. Det består av att lägga till .ren-table-udda klassnamn till varannan
element. Av kompatibilitetsskäl går jag till den andra metoden.
För tillfället har tabeller ett problem när de visas på små skärmar, men det kommer att åtgärdas i nästa utgåva. Observera att du inte ser det i demoen eftersom jag fixade det. Hög fem för mig.
Koden som skapar det randiga bordet visas nedan:
Roligt prisbord
Timmar Antal
Pris (€)
Säker (%)
1
30 €
0%
5
135 €
10%
10
255 €
15%
20
480 €
20%
50
1050 €
30%
Steg 5: En staplad kontaktformulär
Blanketter är ännu en modul i det rena biblioteket. Det låter dig visa dina formulär i flera olika typer av stilar. I den här demoen skapar vi en staplad form där ingående elementen ligger under etiketterna. För att göra detta måste vi lägga till .ren-formen och den .ren-form staplade klasser till element. Då måste vi placera både märka och den inmatning taggar inom ett omslag, där vi ska tillämpa .ren-kontroll-gruppen klass och sedan sätta alla dessa inslag i en element. Skicka och återställningsknappen kommer också att ha ett omslag, men deras omslag kommer att ha klassen .rena-kontroller. Observera att för inlämningsknappen använde vi klassen .ren-knapp-primär att markera den. Den citerade klassen hör till knappen Knappar och används för att ändra knappens stil med en blå färg.
Här är vad din formskod ska se ut:
Kontakta mig
Steg 6: En vertikal meny med en rubrik
Det sista elementet som du lär dig att skapa, med ren, kommer att vara en vertikal meny med en rubrik. En meny av denna typ är utformad med en svart kant runt, runt. För att använda det ska vi ansöka om listomslaget, två av de tre klasserna som vi redan har använt i det första steget, det vill säga .pure-menyn och .ren-menu-open. För att skapa huvudet måste vi dessutom lägga till ett annat element och söka det till .pure-menyn rubrik klass.
Koden för den här menyn visas nedan:
Var hittar du mig
Mina profiler
Twitter
Linkedin
GitHub
Google+
Slutsats
Så kompletterar denna introduktion till ren. Jag hoppas att du tyckte om det. Om du vill följa utvecklingen av Pure kan du besöka sitt förråd på GitHub. Var god att skicka in problem, utfärda förfrågningar och dra med.