21
Dec

CSS Grundkunskap - Visual Formatting Model

Kategorier: CSS

Visual Formatting Model definierar hur innehåll ska placeras på olika typer av visuella media. Till exempel skärmar, papper (utskrifter) och projektorer. För att få ordentlig koll på saker som float och position, vilka egentligen också tillhör Visual Formatting Model, behöver du förstå grunderna för modellen. Det är just detta den här artikeln tar upp och sammanfattar.

För att förstå Visual Formatting Model är det bra att först förstå boxmodellen ordentligt. Alla element på en sida skapar boxar av olika slag. Visual Formatting Model i CSS 2 definierar flera olika typer av boxar, men den här artikeln tar endast upp de vanligaste, block- och inline-boxar.

Block-element

Dessa element ritas upp visuellt som block med innehåll. Block-element kommer att dyka upp efter varandra vertikalt, det vill säga ovanpå varandra.

Artikelbild

Höjden på ett block-element bestäms av vertikala marginaler, padding och borders samt CSS-värdet height. Exempel på element som är block från början är: p, h1 och div.

Inline-element

Element som är inline, t.ex. img, span och em, kommer att rita upp innehållet i rader ("in lines"). Även om inte boxarna syns så finns de där och omger innehållet i inline-boxen. Skillnaden är att de inte ritas upp ovanpå varandra som block med innehåll.

Artikelbild

En inline-box kommer alltid att vara hög nog för att rymma innehållet. Man kan inte justera höjden på boxen genom att sätta olika height eller vertikala marginaler, padding eller border på den. Däremot kan man justera höjden något genom att ändra värdet line-height.

Anonyma boxar

I vissa fall skapas boxar utan att du ber om det. I exemplet ovan där en div innehöll lite text samt en span skapas en anonym inline-box runt all text, samt en vanlig inline-box runt innehållet i span-elementet. Har du en div som innehåller dels lite text och sedan en paragraf, kommer en anonym block-box att skapas runt den text som inte ligger inuti p-elementet.

Artikelbild

Du kan inte påverka anonyma boxar med CSS men det är bra att veta om dem för att inse att allting skapar boxar i CSS.

CSS-värdet display

Om du vill ändra ett element från att vara till exempel block till inline, kan du göra det genom egenskapen display.

div.litenBox {
display: none;
}

Här hittar du en exempelsida som visar vad som händer om man ändrar en span från inline till block.

Sätter du värdet display till "block" kommer boxen att bli en block-box, och sätter du värdet till "inline" kommer boxen att bli (surprise!) en inline-box. Sätter du däremot display till "none" kommer ingen box att genereras och innehållet kommer inte att ta upp något utrymme på sidan.

Olika positioneringssystem

Det finns tre olika positioneringssystem i CSS 2. Det första är det normala flödet vilket är det som tagits upp i denna artikel. Här placeras block-boxar ut som block ovanpå varandra och inline-boxar placeras ut horisontellt efter varandra. I kommande artiklar kommer de två andra systemen att tas upp, nämligen floats och absolut positionering. Egentligen tillhör relativ positionering det normala flödet, men mer om detta får du läsa i artikeln om absolut positionering.

TYCKTE DU OM ARTIKELN?

Pusha

KOMMENTARER

Kommentera artikeln



RSS

SÖK BLAND ARTIKLAR

KATEGORIER

OM KLIENTSIDAN

Klientsidan.se är en privat site som skriver om klientdelen av webben. Här kan du hitta artiklar och information om HTML, XHTML, CSS, webbstandarder, semantik, AJAX, javascript, DOM och mycket annat. Har du några idéer eller synpunkter, tveka inte att skicka ett mail. Kontaktuppgifter finner du på kontaktsidan.