InDesign-bokse er lige så enkle som klik og træk. Photoshops lag lader malere farvepixel overalt, hvor de vil. Men layout med HTML og CSS er et spil med nudging og cascading.
Det sker hver dag: Photoshop-kyndige kunstdirektører mocker design, henter deres afstand, vælger omhyggeligt passende skrifttyper og farver. De afleverer deres arbejde til en ivrig HTML-udvikler, der annoncerer, at designet sandsynligvis vil tage dage til at blive til HTML / CSS. Værre, de vil foretage ændringer for at tage højde for forskellige skærmstørrelser. Timing er et mysterium for begge parter. Vil det tage udvikleren en time eller en uge at gøre deres PSD til arbejde HTML / CSS?
Grundlaget for weblayoutet - det mulige, det praktiske, mulighederne - er let at forstå. Ligesom design selv, vil forstå principperne hjælpe enhver designer producere bedre design og fremskynde processen med at bygge et websted.
Alt på en webside, fra afsnit til billeder til links til fed tekst, befinder sig i usynlige bokse. Disse kasser kommer i to sorter: blok og inline. Forskellen mellem inline og blok ligger i deres adfærd.
Blokelementer stak oven på hinanden. Medmindre andet er sagt, besætter de så meget vandret plads som muligt og skubber alt omkring dem op eller ned. Til design er blokelementer det primære layoutværktøj.
Inline elementer er baseret på tekstformatering. De bryder ikke strømmen af tekst, og deres dimensioner udvides til at passe deres indhold. At tælle et inline-element for at holde en bredde på 200 pixels virker ikke. Fyldning med tekst vil.
Som standard er hvert element i er enten et inline eller blokelement. Designere kan ændre deres karakter med en lille CSS - sig om at vende en stak listemner (native blokke) i en række, eller en række vandrette links (indbygget inline) i en lodret stak. Det betyder, at et synligt element kan bruges til layout. Uanset om de skal afhænge af det pågældende layout.
Native blokelementer omfatter:
- Stk
- Lister
- Elementer i en liste
- Overskrifter
-
- Borde
- Bloker citater
- Arrangører i HTML5
,
,
,
, og
- Kroppen selv
Inline elementer omfatter:
Fælles tags, der hverken er blok eller inline:
- Dokumentets titel
- Metatags
- Script tags
- Link tags
Ved første øjekast synes tilpasning til den lego-lignende mentalitet kontraintuitiv i et medium, der tillader gradienter, kurver og elastiske layouter. Men ideen om alt som en mursten er afgørende for at forstå, hvor indhold og præsentation mødes.
Retningslinje: Hvert par tags (eller selvstændige tags som ![]()
) i kroppen repræsenterer en kasse.
Brug af blokke til layout
Slet en tekstramme i InDesign, og det tilstødende billede bevæger sig ikke, fordi hverken placering afhænger af den anden. Anvend kurver på et Photoshop-lag, og intet andet lag vil ændre sig, fordi kurver påvirker et lag ad gangen. Men slet et element i HTML, og alt efter det element vil sandsynligvis ændre sig. Blokke i en webside stak til det øverste venstre hjørne af deres container, som f.eks
eller en anden blok.
Alt weblayout udføres med blokelementer. Designere bruger blokke, oftest elementer til at skabe rektangulære områder, hvor alt indhold passer. Der er kun fire regler: - Total bredde: Mellemrummet et element optager og påvirker.
- Float: Ændring af blokke tendens til at stable.
- Ryd: Re-estblishing stakke.
- Nest: Elements ligger inden for hinanden eller ej. Der er ingen halvvejs.
Hver regel har forbehold ... men ingen er forpligtet til at samle en side.
(CSS-eksperter vil anerkende, at disse regler gælder for elementer med relativ positionering. Absolut positionering er et andet og mindre almindeligt dyr.)
1. Total bredde = boks og buffer
Total bredde er, hvor meget vandret plads en blok optager. Dette omfatter blokens margen, grænse og polstring. I udskriftsparlance er margen og polstring typer af tagrender. Men i modsætning til traditionelt negativt rum, der er skabt ved at skubbe kasser fra hinanden, er polstring og margen en del af en kasse. De er ligesom kerning til layoutelementer.
Beregning af bredde, polstring og margen er ofte den største hovedpine for designere, men de resterende regler er lidt mere ligetil.
2. Flydende baner blokerer fra stakken
Flydende skubber et blokelement til venstre eller højre, og fjerner det fra den naturlige stack. Når en blok flyder, gør det plads til alt under det at stige omkring sin anden side.

Kolonner opstår, når en række blokke flyder ved siden af hinanden.
3. Clearing: Gør det muligt for designere at organisere en side både vandret og lodret
En uheldig sidevirkning af flydende er dens indvirkning på beholderen. En beholder vil vokse lodret for at passe dens indhold - undtagen dem, der flyder. Hvis alt flyder, så har kassen ingen højde. Alt nedenunder stiger under de flydende genstande. Chaos følger.
Clearing genoptager blokkernes naturlige tendens til at stable. I virkeligheden minder det om en beholder, som den har noget at indeholde. Uden rydning kan designere ikke organisere en side både vandret og lodret.

4. Nesting
Nestning er simpel: Hver blok skal helt opholde sig i en anden blok. Ingen blok kan muligvis strække sig uden for sine grænser uden alvorlige konsekvenser, og ingen to blokke kan delvis overlappe hinanden.
Kolonner skal passe, ellers
Det er her designere skal udføre lidt matematik. For at passe kolonner korrekt skal summen af deres samlede bredder være mindre end deres containers bredde.
Kolonner er en række blokelementer, der skubber til venstre eller, i sjældnere tilfælde, til højre. Hvis disse søjler er for brede til deres beholder, falder den sidste søjle under de andre uden særlige teknikker.
Et simpelt layout kan bruge tre elementer til at oprette et to-kolonne layout:
…

Ovenstående bruger det venstre eksempel dette CSS:
#container { width: 1000px; }
#main-content { width: 600px; padding: 20px; }
#sidebar { width: 340px; padding: 10px; }
Beholderen måler 1000 pixels bred. Hovedindholdsblokken er 640 pixels bred - 600 bredde + 20 pixels polstring på hver side. Sidebjælken er 360 pixels bred - 340 bredde + 10 pixels polstring på hver side. (600 + 20 + 20) + (340 + 10 + 10) = 1000. En perfekt pasform.
I højre eksempel er noget for bredt. Det kan enten være kolonneens polstring eller kolonnebredderne selv. Måske er beholderen for smal. Ændring af nogen af disse faktorer for at gøre beholderen bredere end kolonnerne ville løse problemet.
Undtagelser kræver mere kode; ensartethed kræver mindre
I modsætning til mere traditionelle visuelle medier - siger skulptur eller grafisk design - skrive kode kræver et stærkt mentalt billede af, hvad koden vil gøre.
Nogle aspekter ved at designe ved kode er indlysende. Enkle designs bruger ofte mindre kode end komplekse designs. Hvis løsningen på et designproblem kræver, at alle widgeter, kolonner og tekststykker skal have deres egen baggrundsfarve, så er det også. Det kræver bare mere kode.
- Hvis et stykke tekst er større end andre, så har det brug for en egen indtastning i CSS-filen.
- Hvis to kolonner har forskellige bredder, skal CSS-filen angive bredder for hver.
- Hvis et design kræver tre typer af punktpunkter, kræver CSS tre definitioner.
En mindre indlysende kendsgerning for design-by-kode er, at det er ... mindre indlysende. Imagination og erfaring er særligt nødvendige i programmeringssidelayout, hvor ændring af kolonnens margen vil påvirke sine naboer. I overgangen fra print til webdesign, undlader man at forestille sig udfaldet, går nye udviklere op.
Ikke det color:blue
er svært at forstå. Men det er en ting at skrive div { background: url(photo.jpg) top left no-repeat; }
og en anden til at se et billede i sammenhæng med siden.
Heldigvis lette nogle analogier læringskurven.
- Tænk på CSS som at arbejde helt sammen med stykkeformater. At ændre et element i luften er besværligt. CSS fungerer bedst, når det anvendes på en hel klassifikation af billeder eller ord (dermed "klassen" -attributten i HTML).
- Forestil dig at se en fjerdedel af en side ad gangen. På et hvilket som helst tidspunkt ser brugerne kun en del af en webside, fordi de fleste websider er større end det gennemsnitlige browservindue. Slutbrugerne ser kun et stykke ad gangen. Den "foldede" forekommer på alle fire sider af browseren.
- Spørg dig selv "hvad hvis hvert element fordobles i mængde?" Gode designs præsenterer indhold godt ved lanceringen. Store webdesign fortsætter med at gøre det. Artikel skabeloner skal rumme artikler af forskellig længde. Content managers fjerner gammel tekst eller tilføjer nye billeder, der ikke overholder de planlagte proportioner. Kunderne beslutter at have deres fem seneste tweets på hjemmesiden. Ingen ved, hvordan et websted kan ændre sig, men planlægning af forskellige mængder af alt er en god forholdsregel.
Bevæger sig fremad
Fordelene ved at forstå weblayout er at vide, hvad der er muligt, forhindre almindelige faldgruber og hurtigere udviklingstider. Men at lære at designe med HTML / CSS i tankerne kræver en ændring i tænkning. CSS systemer som 960 Grid System minimere det nødvendige tekniske arbejde, og lette overgangen fra ren pixel arbejde til kode. Men som at lære noget sprog, kan det bedste værktøj være vedholdenhed.
Hvad giver dig mest besvær med at gøre mockups til at arbejde med HTML og CSS? Del dine erfaringer og løsninger i kommentarerne nedenfor.