1. Inledning
2. Bredden på boxen 3. Höjdinställningar 4. Radavståndet i boxen 5. Justering av innehållet i en inbäddad box 6. Overflow och clipping Obs! 1. InledningI specifikationens tionde och elfte kapitel beskrivs med ytterst stor noggrannhet hur de olika boxarnas storlek beräknas, beroende på hur de placerats och ärver varandra. Jag kommer inte att gå igenom dessa kapitel särskilt noga, eftersom mycket av det som sägs inte är särskilt användbart. Normalt ser man ju nämligen resultatet på skärmen och kan göra ändringar utifrån det. Däremot tänker jag säga lite om hur man storleksbestämmer och justerar olika boxar. 2. Bredden på boxenBredden på en box bestäms med egenskapen width, som kan ha några olika värden: TABLE { width: auto }
Man kan bestämma bredden på i stort alla element, utom vissa inline-element, som B, SPAN, U, vars bredd bestäms av dess innehåll, alltså hur många tecken man skriver in i dem. Man kan inte heller bestämma bredden på tabellrader eller grupper av sådana rader. Detta gäller åtminstone i teorin. I praktiken kan man fuska med transparenta bilder och liknande. Men det kan ändå vara svårt att bestämma bredden på formulär, knappar, stycken och liknande. Det framgår när man sitter framför datorn och försöker få det så som man vill. Vill man ändå göra alla inställningar i stilmallen, måste man också självklart tänka på hur breda marginaler, padding, etc, som man använder för boxen. Läs kapitel 10 i specifikationen noggrant om du vill kunna räkna ut detta matematiskt med en formel, eller testa själv och pröva att se hur det faktiskt ser ut i webbläsaren! Det finns ytterligare en sak att säga om bredd och det är att stilmallen gör det möjligt att bestämma max- och minvärden, t.ex: BODY { width: 100%; max-width: 600; min-width: 400 } Det fungerar dock inte på tabeller och jag har i ärlighetens namn aldrig prövat på att använda det. Titta på hur det ser ut i praktiken! >> 3. HöjdinställningarSamma sak som för bredden gäller för höjden: ställ in alla värden direkt i HTML-koden i stället. Ja, om man nu måste ställa in höjden över huvudtaget. Höjdvärdena brukar nämligen leva sina egna liv och kan vara svårt att få helt rätt i de olika webbläsarna. Här är ändå ett exempel: BODY { height: 100%; max-height: 600px; min-height: 400px } 4. Radavståndet i boxenFörutom att man kan bestämma bredden och höjden på en box, vill man ibland även styra höjden på varje rad. I specifikationens kapitel 10.8, beskrivs detta m.h.a termen leading, som på svenska översätts med "radavstånd". Radavståndet beräknas på teckenstorleken och beskrivs närmare på en kommande sida. Man använder egenskapen line-height för att styra radavståndet. Här är några exempel: P { font-size: 12pt; line-height: normal }
Här blir resultatet ett större radavstånd i DIV, något man kanske vill ha för att skapa en viss effekt. Kommandot kan självklart kombineras med inställningar för teckensnitt, teckenstorlek, bakgrundsfärg och liknande. Titta på hur det ser ut i praktiken! >> H4 { line-height: 90% } Denna inställning ger ett något mindre radavstånd, vilket ofta passar bra för mellanrubriker. Titta på hur det ser ut i praktiken! >> SPAN {
Denna inställning skapar en anfang eller kan användas för rubriker. Titta på hur det ser ut i praktiken! >> 5. Justering av innehållet i en inbäddad boxPå förra sidan visade jag hur man kan placera boxar. Nu skall jag visa hur boxar kan justeras i förhållande till varandra. I HTML gör man det någorlunda med attributen align och valign. Det jag nu skall visa är hur man justerar boxar i en inline-box i förhållande till "föräldern" (parent). Det kan t.ex vara att placera en upphöjd eller nersänkt text i förhållande till texten på en rad. Här är ett första exempel: SUB { vertical-align: sub } Egenskapen vertical-align har ett antal olika värden. För att begripa sig på dem bör man först ha klart för sig hur boxar fungerar i sådana här fall.
Värdena är dessa: top
bottom
middle
baseline
sub
super
text-top
text-bottom
Dessutom kan man placera X i förhållande till Y, där värdet noll är detsamma som textens i Y baslinje. Men den här typen av inställningar behöver man ju normalt inte göra, eftersom webbläsarna hanterar justeringen på ett godtagbart sätt. 6. Overflow och clippingTermen "overflow" går att översätta med "översvämning". På motsvarande sätt går "clipping" att översätta med "beskärning" eller "begränsning". Båda kan användas för att styra hur innehållet i en box skall visas, om boxen är för liten. Det kan nämligen vara så att man gjort en box med en fast storlek. Om den text, bilder eller liknande, man sedan lägger in i boxen inte får plats, kan webbläsaren försöka åtgärda detta på ett oönskat sätt, med följd att layouten förstörs. I stilmallen kan man därför ställa in hur innehållet skall visas i sådana situationer. Overflow Denna egenskap styr vad webbläsaren skall göra med sådant innehåll som inte får plats i en box (=block). Värdena är: visible
hidden
scroll
auto
I praktiken fungerar det ungefär så här. I stilmallen skriver man: DIV { width: 100px; height: 100px }
I dokumentet anger man följande: <DIV align="left">
Kolla på exemplen i praktiken. Här har jag skrivit in overflow i BLOCKQUOTE enligt följande: Det hela fungerar egentligen inte alls i vare sig Netscape eller Explorer, men man kan ändå få ett hum om att här finns skillnader, svårigheter och många timmars frustration bakom att få en stilmall att fungera så som det är tänkt! Clipping Jag är faktiskt lite osäker på hur man använder clipping. Jag tror att funktionen gör det möjligt att styra formen och storleken på det område som skall vara synligt i en box. Clipping kan bara användas då man inte utnyttjar visible i overflow, eftersom beskärning inte får ske. Som default eller auto är området som skall visas lika stort som sitt HTML-element. I exemplet ovan skulle vi alltså kunna skriva så här, med samma resultat: BLOCKQUOTE { width: 125px; height: 125px; clip: auto; }
BLOCKQUOTE { width: 125px; height: 125px; clip: rect(0px, 125px, 0px, opx); } De fyra värdena anger top, right, bottom och left. Jag har inte testat detta tillräckligt för att säga hur och när det fungerar. Det är dessutom svårt att se den omedelbara användbarheten här. Ni kan ju titta själva på exemplen nedan: |