InDesign-bokser er like enkle som klikk og dra. Photoshops lag lar malere fargepiksler hvor som helst de ønsker. Men layout med HTML og CSS er et spill av nudging og cascading.
Det skjer hver dag: Photoshop-kunnskapsrike kunstdirektører mock opp design, honing avstanden deres, nøye å velge passende skrifttyper og farger. De overlater sitt arbeid til en ivrig HTML-utvikler, som kunngjør at designet sannsynligvis vil ta dager til å bli til HTML / CSS. Verre, de vil gjøre endringer for å ta hensyn til forskjellige skjermstørrelser. Timing er et mysterium for begge parter. Vil det ta utvikleren en time eller en uke å slå sin PSD til å arbeide med HTML / CSS?
Grunnleggende for weboppsettet - det mulige, det praktiske, mulighetene - er lett å forstå. Som å utforme seg selv, vil forståelse av prinsippene hjelpe noen designer å produsere bedre design og fremskynde prosessen med å bygge et nettsted.
Alt på en nettside, fra avsnitt til bilder til koblinger til fet tekst, ligger i usynlige bokser. Disse boksene kommer i to varianter: blokk og inline. Forskjellen mellom inline og blokk ligger i deres oppførsel.
Blokkelementene stabler oppå hverandre. Med mindre annet er sagt, tar de så mye horisontal plass som mulig og skyver alt rundt dem opp eller ned. For design er blokkelementer det primære layoutverktøyet.
Inline-elementer er basert på tekstformatering. De bryter ikke strømmen av tekst, og deres dimensjoner utvides for å passe inn i innholdet. Å telle et inlineelement for å holde en bredde på 200 piksler, virker ikke. Fyller det med tekst vil.
Som standard er hvert element i er enten et inline- eller blokkelement. Designere kan forandre sin natur med et lite CSS - si å snu en stabel med listeposter (nativt blokker) i en rad, eller en serie horisontale koblinger (native inline) i en vertikal stabel. Det betyr at et synlig element kan brukes til layout. Enten de skal, avhenger av det aktuelle oppsettet.
Native blokkelementer inkluderer:
- avsnitt
- lister
- Elementer i en liste
- overskrifter
-
- tabeller
- Blokker anførselstegn
- Arrangørene i HTML5
,
,
,
, og
- Kroppen selv
Inline elementer inkluderer:
- Ankre (hyperkoblinger)
- Dristig
og
- kursiv
og
- Bilder
- siteringer
- Skriv styling
- Skjemaetiketter
- Opp til deg
Vanlige merker som ikke er blokk eller inline:
- Dokumenttittelen
- Metatagger
- Skriptetiketter
- Link-koder
Ved første øyekast virker tilpasning til lego-lignende mentalitet kontraintuitiv i et medium som tillater gradvis, kurver og elastiske oppsett. Men ideen om alt som murstein er avgjørende for å forstå hvor innhold og presentasjon møtes.
Retningslinje: Hvert par koder (eller frittstående koder som
) i kroppen representerer en boks.
Bruke blokker for layout
Slett en tekstramme i InDesign, og det tilstøtende bildet vil ikke bevege seg fordi ingen av plasseringen er avhengig av den andre. Bruk kurver på et Photoshop-lag, og ingen andre lag vil endres fordi kurver påvirker ett lag av gangen. Men slett et element i HTML, og alt etter det elementet vil trolig endres. Blokker i en nettside stakk til øvre venstre hjørne av containeren, for eksempel
eller en annen blokk.
Alt weboppsett er oppnådd med blokkelementer. Designere bruker blokker, oftest elementer, for å lage rektangulære områder der alt innhold passer. Det er bare fire regler: - Total bredde: Plassen et element opptar og påvirker.
- Float: Endring av blokkers tendens til å stable.
- Klar: Re-estblishing stabler.
- Nest: Elements ligger i hverandre eller ikke. Det er ingen halvveis.
Hver regel har advarsler ... men ingen er pålagt å sette sammen en side.
(CSS-eksperter vil gjenkjenne at disse reglene gjelder elementer med relativ posisjonering. Absolutt posisjonering er et annet - og mindre vanlig - dyr.)
1. Total bredde = boks og buffer
Total bredde er hvor mye horisontal plass en blokk opptar. Dette inkluderer blokkens margin, kantlinje og polstring. I utskriftsparlanse er marginer og polstring typer takrenner. Men i motsetning til tradisjonell negativ plass, opprettet ved å skyve esker fra hverandre, er polstring og margin en del av en boks. De er som kerning for layoutelementer.
Beregning av bredde, polstring og margin er ofte den største hodepine for designere, men de gjenværende reglene er litt enklere.
2. Flytende baner blokkerer fra stakken
Flytende skyver et blokkelement til venstre eller høyre, fjerner det fra den naturlige stakken. Når en blokk flyter, gir det plass til alt under det å stige rundt sin andre side.
Kolonner oppstår når en rekke blokker flyter ved siden av hverandre.
3. Clearing: Lar designere organisere en side både horisontalt og vertikalt
En uheldig sideeffekt av flytende er dens innvirkning på beholderen. En beholder vil vokse vertikalt for å passe til innholdet - unntatt de som flyter. Hvis alt flyter, har boksen ingen høyde. Alt under stiger under de flytende gjenstandene. Kaos følger.
Clearing gjenopptar blokkers naturlige tendens til å stable. I virkeligheten minner det en beholder som den har noe å inneholde. Uten clearing kan designere ikke organisere en side både horisontalt og vertikalt.
4. Nesting
Nesting er enkelt: Hver blokk må helt oppholde seg i en annen blokk. Ingen blokk kan noensinne strekke seg utenfor grensene uten alvorlige konsekvenser, og ingen to blokker kan delvis overlappe.
Kolonner må passe, ellers
Det er her designere må utføre litt matte. For å passe kolonnene riktig, må summen av deres totale bredder være mindre enn beholderens bredde.
Kolonner er en serie blokkelementer som skyver til venstre eller, i sjeldnere tilfelle, til høyre. Hvis disse kolonnene er for store for deres beholder, vil den siste kolonnen ikke falle under de andre uten spesielle teknikker.
Et enkelt oppsett kan bruke tre elementer for å lage en to-kolonne layout:
…
Ovenfor bruker det venstre eksemplet dette CSS:
#container { width: 1000px; }
#main-content { width: 600px; padding: 20px; }
#sidebar { width: 340px; padding: 10px; }
Beholderen måler 1000 piksler bredt. Hovedinnholdsblokken er 640 piksler bred - 600 bredde + 20 piksler med polstring på hver side. Sidebjelken er 360 piksler bred - 340 bredde + 10 piksler med polstring på hver side. (600 + 20 + 20) + (340 + 10 + 10) = 1000. En perfekt passform.
I høyre eksempel er noe for bredt. Det kan være enten kolonneens polstring eller kolonnebredden selv. Kanskje beholderen er for smal. Endring av noen av faktorene for å gjøre beholderen bredere enn kolonnene ville løse problemet.
Unntak krever mer kode; ensartethet krever mindre
I motsetning til mer tradisjonelle visuelle medier - si, skulptur eller grafisk design - skrivingskode krever et sterkt mentalt bilde av hva koden vil gjøre.
Noen aspekter ved å designe ved kode er åpenbare. Enkle modeller bruker ofte mindre kode enn komplekse design. Hvis løsningen på et designproblem krever at hver widget, kolonne og tekststykke har sin egen bakgrunnsfarge, så vær den. Det krever bare mer kode.
- Hvis ett stykke tekst er større enn andre, så trenger det en egen oppføring i CSS-filen.
- Hvis to kolonner har forskjellige bredder, må CSS-filen spesifisere bredder for hver.
- Hvis et design krever tre typer bulletpunkter, krever CSS tre definisjoner.
Et mindre åpenbart faktum med design-by-kode er at det er ... mindre åpenbart. Fantasi og erfaring er spesielt nødvendig i programmeringssideoppsettet, hvor endring av en kolonnemargin vil påvirke naboene. I overgangen fra print til webdesign, unnlater å forestille utfallet, går nye utviklere opp.
Ikke det color:blue
er vanskelig å forstå. Men det er en ting å skrive div { background: url(photo.jpg) top left no-repeat; }
og en annen for å se et bilde i sammenheng med siden.
Heldigvis lindrer noen analogier læringskurven.
- Tenk på CSS som å jobbe helt med stykkstiler. Å endre et element på fluen er tungvint. CSS fungerer best når det brukes på en hel klassifisering av bilder eller ord (dermed "klassen" -attributtet i HTML).
- Tenk deg å se en fjerdedel av en side av gangen. På et gitt tidspunkt ser brukerne bare en del av en nettside fordi de fleste nettsider er større enn gjennomsnittlig nettleservindu. Sluttbrukerne ser bare et stykke av gangen. Den "brette" oppstår på alle fire sider av nettleseren.
- Spør deg selv "hva om hvert element doblet i antall?" Gode design presenterer innhold godt ved lanseringen. Gode webdesign fortsetter å gjøre det. Artikkel maler må imøtekomme artikler av varierende lengde. Innholdsadministratorer fjerner gammel tekst eller legger til nye bilder som ikke samsvarer med planlagte proporsjoner. Klienter bestemmer seg for at de vil ha de fem siste tweets på hjemmesiden. Ingen vet hvordan et nettsted kan endres, men det er en god forholdsregel å planlegge for ulike mengder av alt.
Går videre
Fordelene med å forstå weboppsett er å vite hva som er mulig, hindre vanlige fallgruver og raskere utviklingstider. Men å lære å designe med HTML / CSS i tankene krever en endring i tenkning. CSS systemer som 960 Grid System minimere det tekniske arbeidet som kreves, og lette overgangen fra rent pikselarbeid til kode. Men som å lære noe språk, kan det beste verktøyet være utholdenhet.
Hva gir deg mest mulig problemer med å slå mockups til å arbeide med HTML og CSS? Del dine erfaringer og løsninger i kommentarene nedenfor.