När Collis lanserade den här webbplatsen och frågade läsare för instruktionsförfrågningar, var en vanlig en "magazine teman" hur-till för bloggplattformar. Denna handledning fokuserar på den första delen av processen: tillämpa ett CSS-rutnät till designen för att prototyper en mall för hemsidan.
Du kan se en demonstration av denna handledning genom att klicka på "Demo" knappen nedan. För källan innehåller inte ZIP-filnedladdningen CSS-koden.
Fokuset här är på ett webbdesign-exempel med hjälp av CSS-ramramen för Blueprint, baserat på min tidigare CSS Grid Framework-artikel. Du kan dock tillämpa samma process på alla CSS-rutor som du föredrar. Om du inte gillar att använda gallerramar på produktionsplatser kan du alltid ersätta CSS-koden och motsvarande HTML-klasser med din egen.
Siddesignen som visas nedan påverkas av många WordPress-tidskrifter, så du kanske ser bekanta designelement, men det här är inte en WP-specifik handledning.
Låt mig påpeka att jag bara är en "fåtölj", självlärd designare, och min designs minimalistiska natur kommer att återspegla min brist på lämplig träning. Förhoppningsvis kan du fokusera på den allmänna rutnadesigneringen och kodningsprocessen, som bygger på geometriska element, inte på stil.
En typisk designprocess för webbsidor är att börja med en skiss på papper, följt av en grafisk mockup i Photoshop eller Fireworks, etc. Släpp i alla designelement, placerade ungefär där du vill ha dem. Senare, i CSS-nätbaserad designfas bestämmer du exakta mätningar.)
FilmPundits är en webbplats som ägs av en kompis som jag bygger upp. Mockupen nedan är en av flera "FilmScenic" -designer som jag har prototypat. Filmens ämne lutar sig bara till det här exemplet på grund av widescreen-stilbilderna.
Om du vill använda en liknande design för icke-filmämnen, justera bildhöjderna så att de ser mindre widescreen-y. För mina designbehov måste den största bilden ha störst effekt. Så kompositionen är placerad något utanför centrum, horisontellt. Detta gör hela sidan lite mer dynamisk och gör ögat till de viktigaste elementen.
Låt oss titta på "guide" -linjerna nedan, som bildar designnätet för mockupen ovan.
Använd din favoritgrafikprogramvara för att vrida styrlinjerna till en "skiva" -karta:
Om du inte använder ett CSS-nät, skulle du antingen manuellt koda din webbsida och CSS-fil vid den här tiden, eller låta din programvara generera koden för dig.
Nu när vi har en grafisk designmockup, behöver vi översätta det till HTML och CSS-kod. Att upprepa, med hjälp av ett CSS-nät ramar fram prototypprocessen. Du kan mäta dina designelement i pixelbredder och finjustera för att passa CSS-nätet som du använder. (Jag får inte mycket in i vertikal positionering eftersom jag tenderar att kontrollera det med bildhöjder och topp / bottenmarginaler.)
Här är den process som jag brukar använda för att tillämpa CSS-nät, som behandlar den grafiska designmockupen som en sida. Du måste justera detta så att det passar dina behov.
Om du är en riktig designer, till skillnad från mig själv, kommer du förmodligen att göra det mesta av designmockupen i ditt favoritgrafikredigeringspaket. Jag föredrar oftast att skissa på papper, sedan mocka i flygning med hjälp av HTML och CSS (både Blueprint och anpassade klasser), som diskuteras nedan.
Nu när du har en mockup av din sidlayout kan du börja kodning i HTML och CSS. Här är en grov process av de faktiska kodningsstegen:
För att göra de ovanstående processerna klarare, låt oss titta på några faktiska HTML- och CSS-kodfragment för det exemplar av filmplatsdesign som tidigare visats. Tänk på att jag har gått extrema med de icke-Blueprint div-taggarna för tydlighet i denna handledning. Du kommer noga att vilja ta bort eventuella överskottsklasser, eventuellt slå samman nestade div-taggar.
Observera också att jag har använt vissa "fula" icke-Blueprint CSS-klassnamn för tydlighet. De föregås av "fs-", följt av ett funktionellt namn för att klargöra vad jag använder dem för.
Jag har kodat fem steg för denna handledning för att illustrera förfiningsprocessen i HTML och CSS. Normalt skulle jag komprimera steg 1-3.
Dessa steg kommer att bli tydligare i avsnitten nedan.
För att börja med vill vi skapa HTML-filen:
FilmScenic Mall rubrik, innehåll, sidofält och sidfot går här
Blockera nu hela sidan (behållaren) i tre CSS-kontrollerade sektioner: fs-mainblock, fs-sidebar och fs-footer. Du kan se detta i HTML-koden nedan, vilket fyller i några av div.container-elementet som vi introducerade tidigare:
rubrik, innehållsblock går härsidofältet(c) Copyright 2008-present, Den här bloggen
Du märker att divsna ovan använder både anpassade klasser och Blueprint-klasser (span-18, colborder, span-5, last, span-24). Klassen "sista" är väldigt viktig, annars kommer inte fs-sidebar-sektionen standard höger marginal att stängas av, och sektionen kommer att göra under avsnittet fs-mainblock istället för bredvid det. Colborder drar en vertikal linje mellan fs-mainblock och fs-sidebar, och tar upp en kolumn i sig. Detta återspeglas inte i "span-18" -värdet. I teorin tar mainblock faktiskt upp 19 kolumner (19 + 5 = 24 kolumner, standardblanketten).
Nu lägger vi till klasser till det anpassade formatarket för dessa tre kvarter (se nedan). Obs! En del av dessa är tillfälliga för att visa blockrektanglarna på skärmen medan du förädlar designen. Konsultera den slutliga style.css-filen istället för att använda exakt de regler som presenteras i CSS-kodsekvenserna nedan.
div.fs-innehåll margin-bottom: 20px; div.fs-mainblock höjd: 700px; bakgrund: #ccc; div.fs-sidebar höjd: 700px; bakgrund: #ccc; div.fs-footer margin-top: 20px; padding-top: 5px; höjd: 30px; bakgrund: #ccc; border-top: 1px solid # 000;
CSS ovan resulterar i den grova mockupen nedan:
Låt oss förstärka designen ytterligare genom att bryta ner sektionerna. Fs-mainblock div-klassen är uppdelad i fs-header och fs-featured sektioner. Fs-sidebaren är uppdelad i fs-recentposts och fs-newsbox. Här är den raffinerade div.container:
Logo + menyUtvalda avsnittNya Inlägg
Nyheter(c) Copyright 2008-present, Den här bloggen
Som tidigare läggs klasser för de nya sektionerna till det anpassade formatarket, style.css. Varje sektions höjd approximeras vid behov och vi lägger en gång till en tillfällig bakgrund till några av elementen, som kommer att tas bort i den slutliga style.css-filen. Här är några ytterligare CSS-regler:
div.fs-header // Logo + menybredd: 710px; höjd: 110px; bakgrund: #ccc; marginal-botten: 10px; div.fs-featured // Utvalda sektionsbredd: 710px; höjd: 580px; bakgrund: #ccc; marginal-botten: 10px; div.fs-sidebar div.fs-recentposts height: 370px; bakgrund: #ccc; marginal-botten: 10px; div.fs-sidebar div.fs-newsbox height: 270px; bakgrund: #ccc;
Detta resulterar i följande mockup:
Detta är det sista steget i mockup-processen. Vi lägger till avsnitt för alla återstående designelement:
Så här ser vår div.container ut:
LogotypMenyDagensstor funktionsm-funktionensm-funktionensm-funktionenNya InläggSenaste inläggetSenaste inläggetSenaste inläggetSenaste inläggetSenaste inlägget
Nyheter(c) Copyright 2008-present, Den här bloggen
Som du kan se finns det många nestade divs som används. En del av det är bara för tydlighet i denna handledning. För resten kan du på en produktionsplats komprimera en del av det eller ersätta Blueprint-klasserna med din egen. Vissa föredrar att använda caching på sina webbplatser, när man använder "magazine" teman med rutnätverk - men det är inte tillgängligt för denna handledning.
Var och en av de nya klasserna läggs till i det anpassade formatarket, med temporära höjder och bakgrunder:
div.fs-logo / * Site logo * / höjd: 90px; bredd: 400px; bakgrund: # 999; marginal-botten: 10px; div.fs-horiznav / * Horisontell meny * / höjd: 25px; bredd: 710px; bakgrund: # 999; marginal-botten: 10px; div.fs-featured / * Utvalda avsnitt * / bredd: 710px; höjd: 580px; bakgrund: #ccc; marginal-topp: 10px; marginal-botten: 10px; div.fs-txt-featured / * Utvalda * / höjd: 30px; bredd: 110px; bakgrund: # 999; div.fs-features / * Funktioner * / höjd: 570px; bredd: 590px; bakgrund: # 999; div.fs-bigfeature / * Stor funktion * / höjd: 260px; bredd: 590px; bakgrund: # 666; marginalbotten: 20px; div.fs-smfeatures div / * Liten egenskap * / höjd: 280px; bakgrund: # 666; marginal-botten: 10px; div.fs-recentpost / * Individuell ny post. Höjden är faktiskt variabel, men är minst 49 px * / höjd: 50px; // Grov bredd: 190px; bakgrund: # 999; marginal-botten: 10px;
Detta resulterar i vårt slutliga mockup-stadium, som ser ganska nära geometrier till vår "skivad" grafisk designmockup:
Vi är nu redo att producera den slutliga koden.
Det här är det sista steget i kodningsprocessen, där vi släpper in faktiska designelement, gör sanering på överskridna divs och klasser, och avlägsnar några "blockerings" -element:
Nu har vi vår slutliga design, nedan, vilket är detsamma som i början av denna handledning:
De slutliga filerna har ingen av de gråblåsta elementen, och det finns ytterligare verbala kommentarer i style.css-filen som ska hjälpa dig att dechiffrera syftet med varje anpassad klass. ZIP-filen innehåller bilder beskurna från olika filmaffischer, som är upphovsrättshavarna till respektive ägare. CSS gridfilerna ingår inte i ZIP-filen.
Observera att vissa mindre skillnader kan finnas mellan källfilerna och koden som presenteras ovan.
Några slutliga kommentarer till exemplet i denna handledning:
Detta är inte ett komplext exempel eller ett helt tema för en bloggplattform, men jag hoppas det hjälper dig att förstå hur du använder CSS-nät för webbdesign. Medan koden här är för en statisk sida, är nästa steg att integrera den med en bloggplattform för att skapa en startsida mall.