Bejegyzés született:

  • 14.03.2009
  • 01:23 DU.-kor
  • txn által

Fluid CSS elrendezések IIb. A befelé növekvő doboz – a megoldás 0

márc14

A probléma tehát adott, az előző bejegyzésben megkezdett fluid CSS elrendezés megalkotása zátonyra futott. A viewport felosztása ugyan problémamentesen lezajlott, egyszerűen kívánt arányban %-os szélességértéket kaptak a leendő tartalmat tároló blokkok, azonban a fluid CSS elrendezés felépítéséhez szükséges további elemek: margók,keretek,behúzások beillesztésekor probléma lépett fel. Egyrészt előbbi elemeknek vagy nem adhatunk meg %-os értéket : border, vagy megadhatunk ugyan, de akkor a dizájnolhatóságot csapjuk agyon (én még nem kaptam változó margin,border,padding tulajdonságokkal rendelkező psd-t dizájnertől), ha viszont fix érték(ke)et állítunk be: kinyírjuk a fluid CSS-elrendezést (lásd előző bejegyzés), szükség volt tehát a nagy ötletre, amit kedvenc CSS-könyvünk le is szállít számunkra.

A konkrét probléma tehát, a leendő tartalmat tároló blokk elemeknek – legyenek azok float-olt, abszolút, vagy statikusak- nem állíthatunk be border,padding,margin tulajdonságot, mert ezzel azok szélesség dimenziói megváltoznának.

Ellenben, ha mindeme tulajdonságokat egy tartalmazó elem széles elemnek, egy statikus blokknak, adnánk meg, majd ezt az elemet helyeznénk a leendő tartalmat tároló blokk elembe – aminek a továbbiakban nem állítunk be padding,border,maring értéket, így a szélessége fix marad-, lényegében az elem befele növekedne, ellenben ugye az eredeti CSS box modellel,  ami kifelé növekszik : a width CSS tulajdonság a tartalom szélességét állítja be, ehhez adódnak hozzá a padding,border,margin szélességek.

Tehát a megoldás, a bejegyzés címét is adó, a befelé növekvő doboz, először a minta:

HTML

<BLOKK><div class=”oi”> TARTALOM </div></BLOKK>
vagy
<INLINE><span class=”oi”> TARTALOM </span></INLINE>

CSS

SZELEKTOR { width:SZÁZALÉK; min-width:+ÉRTÉK; }
SZELEKTOR *.oi { margin:+ÉRTÉK; border:WIDTH STYLE COLOR;
padding:+ÉRTÉK; background:STYLES; display:block; }

a könyv az ‘Outside-in Box’ terminus technikus-t vezette be, ezért a ‘oi’ class név. A minta táblára és magasságra nem, csak szélességre alkalmazható, viszont így is megoldja a fenti problémánkat – és az előző bejegyzésben szereplő ie6,7 egyedi viselkedésését ill. bug-ját- .

Előbbi mintával kisegítve, folytathatjuk a szépreményű, fluid CSS elrendezés felépítését, tehát

#wrapper {
    font-family: verdana, arial, sans-serif;
    font-size: 18px;
    margin: 0 auto;
    max-width: 1000px;
    overflow: hidden;
}
#nav {
    float: left;
    min-width: 170px;
    width: 20%;
}

#main {
    float: left;
    min-width: 170px;
    width: 80%;
}
</style>
</head>
<body>
<div id="wrapper">
<div id="nav">
    <p>
        Szélessége 20% a konténer elemének
    </p>
</div>
<div id="main">
    <p>
        Szélessége 80% a konténer elemének
    </p>
</div>
</div>
</body>

ból, kiindulva, a fenti mintát az előbbi kódhoz hozzáadva,

#wrapper {
    font-family: verdana, arial, sans-serif;
    font-size: 18px;
    margin: 0 auto;
    max-width: 1000px;
    overflow: hidden;
}
#nav {
    float: left;
    min-width: 180px;
    width: 20%;
}
#main {
    float: left;
    min-width: 180px;
    width: 80%;
}

#nav .oi, #main .oi{
	background-color:gold;
	border:5px solid silver;
	padding:10px;
	margin:15px;
}
</style>
</head>
<body>
<div id="wrapper">
    <div id="nav">
    	<div class="oi">
            <p>
                Szélessége 20% a konténer elemének - border:5px; padding:10px; margin:15px;
            </p>
		</div>
    </div>
    <div id="main">
    	<div class="oi">
            <p>
                Szélessége 80% a konténer elemének - border:5px; padding:10px; margin:15px;
            </p>
		</div>
    </div>
</div>

a példafájlon megtekintve, majd a böngésző ablak méretezésével játszva, látható hogy immáron tetszőleges margin, padding, és border CSS tulajdonság beállítására van lehetőség az elrendezés szétesése nélkül, megelégedéssel nézhetjük ie netrenderel-t is, tevékenységünk – ill. az elrendezés – legalábbis eddig, böngészőfüggetlen.

Az alapok tehát megvannak, a következő bejegyzésekben kiterjesztjük lehetőségeinket ill. finomítjuk a mintát.

foly. köv. , hajrá CSS :)

iratkozz fel a komment RSS-re

Még nem született komment ehhez a bejegyzéshez

Kérlek gazdagítsd a bejegyzést az észrevételeiddel

* -al jelölt mezők megadása kötelező

b{}xm{}dels.toxin.hu is powered by WordPress and the original FREEmium Theme.
developed by Dariusz Siedlecki and brought to you by FreebiesDock.com