Pogled v CSS3 Box-sizing
Ne tako dolgo nazaj, ko ustvarjamo škatla na spletni strani, recimo z a div
, določamo 100px
za širino in višino, ki ji sledi oblazinjenje
za 10 px
in meje približno 10 px
prav tako.
div širina: 100px; višina: 100px; oblazinjenje: 10px; meja: 10px trdna #eaeaea;
Brskalniki bodo razširili velikost polja na 140 px, pri čemer je ta znesek 140px skupne širine / višine sestavljen iz dodatka oblazinjenje
in meja
kot sledi; 100px [širina / višina] + (2 x 10px [oblazinjenje]) + (2 x 10px [obroba]).
Vendar včasih ta rezultat ni tisto, kar pričakujemo. Včasih potrebujemo polje vedno 100px
ne glede na dodano oblogo ali meje.
Za odpravo takšne ponavljajoče težave pri ustvarjanju postavitve spletne strani lahko uporabimo CSS3 velikost škatle
lastnost za nadzor nad tem, kako Model škatle CSS delovati v brskalnikih.
Uporaba velikosti škatle
The velikost škatle
lastnost ima dve možnosti vrednosti, najprej vsebina-box
; ki je privzeta vrednost, se bo pri uporabi te vrednosti model polja obnašal, kot smo opisali zgoraj.
In druga je obrobo
, kjer bo izračunana velikost polja tako, da odvzame velikost določene vsebine z dodanim oblazinjenjem in obrobo.
div širina: 100px; višina: 100px; oblazinjenje: 10px; meja: 10px trdna #eaeaea; velikost škatle: obrobno polje; -moz-box-sizing: border-box; / * Firefox 1-3 * / -webkit-box-sizing: border-box; / * Safari * /
Na primer, ko imamo okvir, kot smo opisali zgoraj (kvadratek 100 px z 10 pikami za oblazinjenje in meje), se bo velikost vsebine zmanjšala na 60px
, in skupna velikost polja ostane 100px
, kjer lahko enačbo odštevanja opišemo kot sledi; 100px [širina / višina] - ((2 x 10px [oblazinjenje]) + (2 x 10px [obroba])).
- Demo
- Prenesi vir
Podpora za brskalnik
The velikost škatle
lastnine v vseh brskalnikih; Firefox 3.6+, Safari 3, Opera 8.5+ in Internet Explorer 8 in novejši.
Torej, če veste, da večina vaših obiskovalcev ne bo uporabljala različic Internet Explorerja pod 8, lahko uporabite to koristno priporočilo (zahvaljujoč Paul Irish).
* box-sizing: mejna škatla; -moz-box-sizing: border-box; / * Firefox 1-3 * / -webkit-box-sizing: border-box; / * Safari * /
Zgornji odrezek bo uporabil oznako velikost škatle
vse elemente na vaši spletni strani.
Primer
V tem razdelku vam bomo pokazali zgled, kako lahko to izkoristimo velikost škatle
nepremičnine. Ustvarili bomo preprosto navigacijo, ki temelji na spodnji oznaki HTML, z menijem s petimi povezavami.
Nato bomo dodali nekaj dekorativnih stilov; kot je, nastavite navigacijo fiksna širina za 500px
in širina povezave je 100px, nato vstavite element seznama in podajte različna ozadja za vsak meni povezave, tako da lahko vidite razlike med njimi.
nav širina: 500px; margin: 50px auto 0; višina: 50px; nav ul padding: 0; margin: 0; nav li float: levo; nav a prikaz: inline-block; širina: 100px; višina: 100%; barva ozadja: #ccc; barva: # 555; dekoracija besedila: nobena; družina pisav: Arial, sans-serif; velikost pisave: 12pt; višina linije: 300%; text-align: center; nav a prikaz: inline-block; širina: 100px; višina: 100%; barva: # 555; dekoracija besedila: nobena; družina pisav: Arial, sans-serif; nav li: nth-child (1) a background-color: # E9E9E9; meja levo: 0; nav li: nth-child (2) a background-color: # E4E4E4; nav li: nth-child (3) a background-color: #DFDFDF; nav li: nth-child (4) a background-color: # D9D9D9; nav li: nth-child (5) a background-color: # D4D4D4; meja desno: 0;
Na tej točki naša navigacija izgleda normalno.
Vendar pa bo težava prišla, ko bomo dodali levo ali desno mejo v meni povezav.
nav a border-left: 1px solid #aaa; border-right: 1px solid # f3f3f3;
Meni se bo prelival na dno, saj širina povezave ni več 100px
. Sedaj je 102px
, skupna širina navigacije 10 px
dlje, kot smo določili zgoraj (500px
).
Da bi odpravili to težavo, moramo uporabiti velikost škatle
lastnine, kot sledi:
nav a border-left: 1px solid #aaa; border-right: 1px solid # f3f3f3; velikost škatle: obrobno polje; -moz-box-sizing: border-box; -webkit-box-sizing: mejna škatla;
- Demo
- Prenesi vir
Nadaljnje branje
In končno, če ste avanturističnega tipa in se želite poglobiti v to temo, smo za vas sestavili nekaj izbranih referenc:
- Razumevanje modela CSS Box - Tech Republic
- Okvara velikosti okvirja v Firefoxu - BugZilla
- Velikost škatle FTW - Paul Irish