Toen Collis deze site lanceerde en lezers om tutorial-verzoeken vroeg, was er een algemene voor een "magazine-thema's" -instructie voor blogplatforms. Deze zelfstudie concentreert zich op het eerste deel van het proces: het toepassen van een CSS-raster op het ontwerp om een startpagina-sjabloon te prototypen.
Je kunt een demo van deze tutorial bekijken door hieronder op de knop "Demo" te klikken. Voor de bron bevat de download van het ZIP-bestand geen Blueprint CSS-code.
De focus ligt hier op een voorbeeld van een webpaginaontwerp met behulp van het Blueprint CSS grid framework, gebaseerd op mijn eerdere Which CSS Grid Framework-artikel. U kunt echter hetzelfde proces toepassen op elk CSS-rasterkader dat u verkiest. Als u het gebruik van rasterkaders op productiesites niet leuk vindt, kunt u de CSS-code en de bijbehorende HTML-klassen altijd vervangen door uw eigen CSS-code.
Het onderstaande pagina-ontwerp wordt beïnvloed door verschillende WordPress-tijdschriftthema's, dus u kunt bekende ontwerpelementen zien, hoewel dit geen WP-specifieke zelfstudie is.
Laat ik erop wijzen dat ik slechts een 'fauteuil' ben, autodidactisch ontwerper, en de minimalistische aard van mijn ontwerp zal mijn gebrek aan goede training weerspiegelen. Hopelijk kunt u zich daarmee concentreren op het algemene ontwerp en coderingsproces van het raster, dat gebaseerd is op geometrische elementen, niet op stijl.
Een typisch ontwerpproces voor webpagina's is om te beginnen met een schets op papier, gevolgd door een grafische mockup in Photoshop of Fireworks, enz. Laat alle ontwerpelementen vallen die zich op de plek bevinden waar u ze wilt hebben. Later, in de CSS grid-gebaseerde ontwerpfase, bepaalt u de exacte metingen.)
FilmPundits is een site die eigendom is van een vriend die ik aan het opbouwen ben. Het onderstaande mockup is een van de verschillende "FilmScenic" -ontwerpen die ik heb geprototypeerd. Het onderwerp film leent zich gewoon voor dit voorbeeld vanwege de beelden in breedbeeldstijl.
Als u een soortgelijk ontwerp wilt gebruiken voor niet-filmonderwerpen, past u de beeldhoogten aan zodat ze er minder widescreen-y uitzien. Voor mijn ontwerpbehoeften moet de grootste afbeelding de meeste impact hebben. Dus de compositie bevindt zich iets uit het midden, horizontaal. Dit maakt de hele pagina een beetje dynamischer en trekt de aandacht naar de belangrijkste elementen.
Laten we de onderstaande 'gids'-lijnen bekijken die het ontwerpraster vormen voor de bovenstaande mockup.
Gebruik uw favoriete grafische software om de hulplijnen in een "plak" -kaart te veranderen:
Als u geen CSS-raster gebruikt, codeert u op dit moment uw webpagina en CSS-bestand handmatig, of laat uw software de code voor u genereren.
Nu we een grafisch ontwerpmodel hebben, moeten we dat vertalen in HTML- en CSS-code. Om nog maar eens te herhalen, versnelt het gebruik van een CSS grid framework het prototypingproces. U kunt uw ontwerpelementen in pixelbreedten en finetune meten, zodat ze passen bij het CSS-raster dat u gebruikt. (Ik kom niet veel in verticale positionering omdat ik de neiging heb om dat te regelen met beeldhoogten en boven / onder marges.)
Hier is het proces dat ik meestal gebruik om CSS-rasters toe te passen, die de mockup voor grafisch ontwerpen als een terzijde behandelen. U moet dit aanpassen aan uw behoeften.
Als u een echte ontwerper bent, zult u waarschijnlijk, in tegenstelling tot ik, de meeste van de ontwerpmodellen in uw favoriete grafische bewerkingspakket doen. Ik schets over het algemeen liever op papier en bespreek het vervolgens direct met HTML en CSS (beide Blueprint en aangepaste klassen), zoals hieronder besproken.
Nu u een mockup van uw paginalay-out hebt, kunt u beginnen met coderen in HTML en CSS. Hier volgt een globaal proces van de daadwerkelijke codeerstappen:
Om de bovenstaande processen duidelijker te maken, laten we enkele echte HTML- en CSS-codefragmenten bekijken voor het voorbeeld van de filmsite die eerder is afgebeeld. Houd er rekening mee dat ik in deze zelfstudie puur voor de duidelijkheid extreem ben gegaan met de niet-Blueprint-labels. Waarschijnlijk wilt u overtollige klassen verwijderen, mogelijk geneste div-tags samenvoegen.
Merk ook op dat ik een aantal "lelijke" CSS-klassenamen voor niet-Blueprint voor de duidelijkheid heb gebruikt. Ze worden allemaal voorafgegaan door "fs-", gevolgd door een functionele naam, om duidelijk te maken waarvoor ik ze gebruik.
Ik heb voor deze zelfstudie vijf fasen gecodeerd, ter illustratie van het verfijningsproces in HTML en CSS. Normaal zou ik fase 1-3 comprimeren.
Deze stappen worden duidelijker in de onderstaande secties.
Om te beginnen, willen we het HTML-bestand instellen:
FilmScenic-sjabloon koptekst, inhoud, zijbalk en voettekst, ga hier naartoe
Sluit nu grofweg de hele pagina (container) af in drie CSS-gestuurde secties: fs-mainblock, fs-sidebar en fs-footer. U kunt dit zien in de onderstaande HTML-code, die een deel van het div.container-element dat we eerder hebben ingevoerd, invult:
header, inhoudsblokken gaan hier naartoezijbalk(c) Copyright 2008-heden, Dit blog
Je zult zien dat de div's hierboven zowel aangepaste klassen als Blueprint-klassen gebruiken (span-18, colborder, span-5, last, span-24). De "last" -klasse is erg belangrijk, anders wordt de standaard rechtermarge van de fs-sidebar-sectie niet uitgeschakeld en de sectie wordt weergegeven onder het gedeelte fs-mainblock in plaats van ernaast. De colborder tekent een verticale lijn tussen fs-mainblock en fs-sidebar en neemt zelf een kolom op. Dit wordt niet weerspiegeld in de waarde "span-18". In theorie neemt het mainblock eigenlijk 19 kolommen in beslag (19 + 5 = 24 kolommen, de Blueprint standaard).
Nu voegen we klassen toe aan de aangepaste stylesheet voor deze drie blokken (zie hieronder). Opmerking: sommige hiervan zijn tijdelijk, om de blokrechthoeken op het scherm te demonstreren en het ontwerp te verfijnen. Raadpleeg het laatste style.css-bestand in plaats van exact de regels te gebruiken die worden weergegeven in de onderstaande CSS-codefragmenten.
div.fs-content margin-bottom: 20px; div.fs-mainblock height: 700px; achtergrond: #ccc; div.fs-sidebar height: 700px; achtergrond: #ccc; div.fs-footer margin-top: 20px; padding-top: 5px; hoogte: 30 px; achtergrond: #ccc; border-top: 1px solid # 000;
De bovenstaande CSS resulteert in de ruwe mockup hieronder:
Laten we het ontwerp verder verfijnen door de secties op te splitsen. De klasse fs-mainblock div is verdeeld in fs-header en fs-featured secties. De fs-sidebar is onderverdeeld in fs-recentposts en fs-newsbox. Hier is de geraffineerde div.container:
Logo + menuAanbevolen sectiesRecente berichten
Nieuws(c) Copyright 2008-heden, Dit blog
Net als voorheen worden de klassen voor de nieuwe secties toegevoegd aan de aangepaste stylesheet, style.css. De hoogte van elke sectie wordt waar nodig benaderd en we voegen opnieuw een tijdelijke achtergrond toe aan sommige elementen, die in het uiteindelijke style.css-bestand worden verwijderd. Hier zijn enkele aanvullende CSS-regels:
div.fs-header // Logo + menu width: 710px; hoogte: 110 px; achtergrond: #ccc; margin-bottom: 10px; div.fs-featured // Aanbevolen secties width: 710px; hoogte: 580 px; achtergrond: #ccc; margin-bottom: 10px; div.fs-sidebar div.fs-recentposts height: 370px; achtergrond: #ccc; margin-bottom: 10px; div.fs-sidebar div.fs-newsbox height: 270px; achtergrond: #ccc;
Dit resulteert in de volgende mockup:
Dit is de laatste stap in het mockup-proces. We voegen secties toe voor alle resterende ontwerpelementen:
Dit is hoe onze div.container er nu uitziet:
LogoMenuUitgelichtgrote functiesm functiesm functiesm functieRecente berichtenrecente postrecente postrecente postrecente postrecente post
Nieuws(c) Copyright 2008-heden, Dit blog
Zoals je kunt zien, zijn er veel geneste divs gebruikt. Sommige zijn alleen voor de duidelijkheid in deze zelfstudie. Voor de rest kun je op een productiesite een deel ervan verdichten of de Blueprint-klassen vervangen door de jouwe. Sommige mensen geven er de voorkeur aan om caching op hun sites te gebruiken, wanneer ze 'magazine'-thema's gebruiken met grid-frameworks - hoewel dat buiten de scope van deze tutorial valt.
Elk van de nieuwe klassen wordt toegevoegd aan de aangepaste stylesheet, met tijdelijke hoogten en achtergronden:
div.fs-logo / * Site-logo * / hoogte: 90px; breedte: 400 px; achtergrond: # 999; margin-bottom: 10px; div.fs-horiznav / * Horizontaal menu * / hoogte: 25px; breedte: 710 px; achtergrond: # 999; margin-bottom: 10px; div.fs-featured / * Aanbevolen secties * / width: 710px; hoogte: 580 px; achtergrond: #ccc; margin-top: 10px; margin-bottom: 10px; div.fs-txt-featured / * Uitgelicht * / hoogte: 30px; breedte: 110 px; achtergrond: # 999; div.fs-features / * Features * / height: 570px; breedte: 590 px; achtergrond: # 999; div.fs-bigfeature / * Big feature * / height: 260px; breedte: 590 px; achtergrond: # 666; margin-bottom: 20px; div.fs-smfeatures div / * Klein kenmerk * / hoogte: 280 px; achtergrond: # 666; margin-bottom: 10px; div.fs-recentpost / * Individueel recent bericht. Hoogte is eigenlijk variabel, maar is minimaal 49 px * / hoogte: 50px; // Ruwweg breed: 190 px; achtergrond: # 999; margin-bottom: 10px;
Dit resulteert in onze laatste mockup-fase, die vrij nauw lijkt in de geometrie van onze mockup met "gesneden" grafische ontwerpen:
We zijn nu klaar om de definitieve code te produceren.
Dit is de laatste stap in het coderingsproces, waarbij we de feitelijke ontwerpelementen laten vallen, de overtollige divs en klassen opruimen en alle "blokkerende" elementen verwijderen:
Nu hebben we ons uiteindelijke ontwerp, hieronder, wat hetzelfde is als aan het begin van deze tutorial:
De uiteindelijke bestanden bevatten geen van de grijsblokkeringselementen en er zijn aanvullende uitgebreide opmerkingen in het bestand style.css die u moeten helpen het doel van elke aangepaste klasse te ontcijferen. Het ZIP-bestand bevat afbeeldingen die zijn bijgesneden uit verschillende filmposters, die het copyright van hun respectievelijke eigenaren hebben. De Blueprint CSS grid-bestanden zijn niet opgenomen in de ZIP.
Houd er rekening mee dat er enkele kleine discrepanties kunnen bestaan tussen de bronbestanden en de bovenstaande code.
Enkele laatste opmerkingen over het voorbeeld in deze tutorial:
Dit is geen ingewikkeld voorbeeld en ook geen volledig thema voor een blogplatform, maar ik hoop dat het u helpt te begrijpen hoe CSS-rasters moeten worden gebruikt voor het ontwerpen van webpagina's. Hoewel de code hier voor een statische pagina is, is de volgende stap het te integreren met een blogplatform om een startsjabloon te maken.