title |
---|
Fyrirlestur 3.3 — CSS 1 – Box model |
Ólafur Sverrir Kjartansson, osk@hi.is
Box módelið lýsir því hvernig rétthyrnd box fyrir element eru mynduð.
- Ysta lag boxsins með skilgreinda lengd
margin-top
,margin-right
,margin-bottom
ogmargin-left
- Getur verið neikvæð tala
- Ef vinstri og hægri margin eru sett sem
auto
er element miðjað
margin: 1em;
/* allt; */
margin: 1em 0;
/* top&bottom right&left; */
margin: 0 1em 2em;
/* top right&left bottom; */
margin: 0 1em 2em 3em;
/* top right bottom left; */
- Lóðrétt margin tveggja eða fleiri boxa geta fallið saman
- Nokkuð flóknar reglur segja til um hvenær og hvernig það gerist
- Næst ystalag boxsins, getum skilgreint:
- width sem jákvæð tala með
border-width
- style með lykilorði, t.d.
solid
íborder-style
- color sem litagildi með
border-color
- width sem jákvæð tala með
border: breidd stíll litur;
→border: 1px solid #000;
- Næst innstalag boxsins
- Skilgreint eins og margin en getur ekki fengið neikvætt gildi
- Shorthand eins og margin
- Fær bakgrunnslit sem skilgreindur er á hlut
- Getum skilgreint breidd með
width
og hæð meðheight
fyrir efnið - Hlutfallslegar stærðir miða við foreldri
- Ættum aldrei að setja hæð á boxi nema við höfum mjög góða ástæðu
- Efni ætti að stýra hæð á boxi, dæmi
auto
lætur vafra finna út gildi sjálfkrafa
Vídd box er þá reiknað:
width = left margin + right margin
+ left border + right border + left padding
+ right padding + content width
height = top margin + bottom margin
+ top border + bottom border + top padding
+ bottom padding + content height
Erfitt að blanda saman hlutfallslegum og nákvæmum stærðum
- CSS3 skilgreinir
box-sizing
sem breytir því hvernig box modelið er reiknaðbox-sizing: content-box;
- sjálfgefið gildi, allt tekið með í reikninginnbox-sizing: border-box;
- aðeins margin er tekið með í reikninginn
Stundum viljum við að boxin okkar séu aldrei minni eða stærri en ákveðið á hæð eða breidd
min/max-height: X;
takmarkar box þ.a. það sé aldrei minna/stærra en Xmin/max-width: X;
takmarkar box þ.a. það sé aldrei mjórra/breiðara en X
- CSS 2.1 skilgreinir visual formatting model
- Grunnur í að vinna með útlit síðu
- Lengi vel eina leið til að vinna með útlit síðu
- Gerð boxa
block
vs.inline
ogdisplay
eigindið
- Eðlilegt flæði
- Staðsetning með
position
- Float
- Þriðja víddin
Ef við höfum ekki skilgreint hvernig element á að haga sér er það í eðlilegu flæði og er sjálfgefið annað hvort block eða inline
- block element forma blokkir og fylla upp í breidd foreldris
- inline element forma ekki blokkir heldur dreifir sér í línur, inline element fá ekki lárétt
margin
,width
eðaheight
display
eigindi stillir hvernig element hegðar sér, t.d.:
display: block
lætur element haga sér sem blokkdisplay: inline
hagar sér sem inline
display: inline-block
element er raðað í línu en hagar sér eins ogblock
display: none
- box er algjörlega fjarlægt, ekki með í útreikningum