Box sizing - CSS3 megoldás dobozok méreten tartásához

2012.10.15. 15:49 markusbird

Régóta gyötör a probléma, hogy ha egy szövegdoboz vagy bármilyen div kinézetén szeretnék változtatni padding  vagy border segítségével, mindíg bele kell kalkulálni, hogy ezeket az elemeket a doboz valós méretén felül adja hozzá a böngésző.

#szovegdoboz {

width: 300px;
height: 100px;
border-left: 5px; }

A fenti példában a szövegdoboz 300 pixel szélességről 305-re dagad a hozzáadott border-nek köszönhetően. Ha pixelpontos dizájnt készítünk, ez tönkreteheti az egész layoutot, mivel ha a doboz nem fér el vízszintesen, a következő sorba (azaz a weboldal aljára) tolódik.

Az oldschool megoldás az lenne, hogy vonjuk ki a border méretét az eredeti doboz méretéből. Ez megoldja a problémát, de kevésbé flexibilis, mivel ha később változtatunk a dizájnon ezt fejben kell tartani. 

Még súlyosabb a helyzet, ha reszponszív, azaz százalék értékeken alapuló a dizájn, mivel ez esetben a számolás még bonyolultabb, illetve nem is kivitelezhető igazán kompromisszum mentesen.

A megoldás a következő tulajdonságok hozzáadása a dobozhoz. Szerencsére még az IE is támogatja 8-as verziótól felfelé, így én nem igazán csinálnék lelkiismereti kérdést a használatából.

#szovegdoboz {

box-sizing:border-box;
-moz-box-sizing:border-box; /* Firefox */
-webkit-box-sizing:border-box; /* Safari */

width: 300px;
height: 100px;
border-left: 5px; } 

Készítettem egy összehasonlító példát Codepen-ben, ahol látványosabb a különbség. Ne feledjük, hogy a margin továbbra is a dobozon kívüli értéknek számít, mivel ezt akkor használjuk, ha valóban távolságot szeretnénk tartani két elem között.

Szólj hozzá!

A bejegyzés trackback címe:

https://markusbird.blog.hu/api/trackback/id/tr444850021

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.

A blogról

Önfejlesztő webdizájnerként itt eresztem ki a gőzt, amit te beszippanthatsz. Gyakorlatiasan hasznos és gondolatébresztő posztok hada. Nem kizárólag webezés, de az a blog lelke.

Kapcsolat

A blogot írja: Márkus Zsombor
Kérdéseddel fordulj hozzám Twitteren. @markusbird

süti beállítások módosítása