Autor Zpráva
nethor
Profil
Taky Vám připadá , že pokud chcete mít kolem bloku rámeček, jsou rozměry v % zcela nepoužitelné?
Úplně jednoduchý případ:
Mám blok s pevnou šířkou a do něj chci vnořit blok s rámečkem pěkně od kraje ke kraji.

Hodilo by se u vnořeného bloku použít šířku v %, aby se při změně šířky nadřazeného bloku vše ostatní dorovnalo.
Vzhledem k definici viz www.jakpsatweb.cz/css/width.html to ale patně bohužel nejde.

Prakticky to znamená, že musím zadat pevnou šířku vnořeného bloku (odečíst rámeček) a při změně šířky nadřazeného bloku vše přepočítat.

Jsem tu jediný, komu to připadá přitažené za vlasy?

Interpretace starších verzí IE (byť chybná) mi v tomto ohledu připadá podstatně praktičtější.
ShiraNai7
Profil
Souhlasím, občas by se hodil "tradiční" border-box model.
Jsou na to CSS pravidla:

        -webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */
        -moz-box-sizing: border-box;    /* Firefox, other Gecko */
        box-sizing: border-box;         /* Opera/IE 8+ */


Bohužel nepoužitelné v MSIE 7 a starších, kde by se to muselo obcházet přes quirk-mód a to spolu nese nevýhody.
Plaváček
Profil
nethor:

Možná jsem něco nepochopil - proč musíš zadávat vnořenému bloku šířku? Výchozí hodnotou je přeci 100% - čili vnořený blok se vždy automaticky roztáhne, nebo mi něco uniká? (ostatně - je to právě princip Pixyho matrjošky, který tyto problémy s box modelem celkem efektivně eliminuje).
nethor
Profil
Plaváček:
proč musíš zadávat vnořenému bloku šířku?
Jasně , nemusím (, psal jsem to jen pro názornost).
Problém se tím ale neřeší, jakmile zadám rámeček vnořený blok začne přetékat.
Plaváček
Profil
nethor:

Dopřej nám ukázku. Když vnořenému bloku nezadáš rozměr, nemůže přetéct. Pokud mu zadáš rozměr, musíš pracovat s rozdílnými box modely. Ale matrjoška právě tohle řeší. Čili fakt nerozumím, v čem máš konkrétní problém.
nethor
Profil
Plaváček:
Aha , nojo, máš pravdu, bez zadání šířky to funguje.
Byl to chybný úsudek;
Výchozí hodnota není tak docela 100%,
width:auto;
není totéž jako
width:100%; 

V tom jsem se mýlil, Viz ukázka:
<div style='width:300px; background: #ccc;'> width:300px; </div>

<br>

<div style='width:300px; background: #ccc;'>
<div style='border: solid 10px; background: #99f;'>width:auto; border: solid 10px;</div>
</div>

<br>

<div style='width:300px; background: #ccc;'>
<div style='width:100%; border: solid 10px; background: #99f;'>width:100%; border: solid 10px;</div>
</div>




Dík za radu.
Plaváček
Profil
nethor:

Mohu ještě doporučit pěkné vysvětlení (proč, jak, na co) http://www.pixy.cz/pixylophone/2003_08_archiv.html#1061885333
nethor
Profil
Jo právě jsem to četl, pěkný článek. Díky.
Nicméně akademicky: Šířka v % a rámeček současně v jednom elementu jsou prakticky nepoužitelné.

Pixiho Matrjoška (z mého pohledu) řeší to , co mnoha lidem komplikuje život.
Patrně z důvodu nedomyšlené definice css.
Plaváček
Profil
nethor:

To vše je dané historicky. Změnit historii ovšem nelze, zpětná kompatibilita je zákon a nezbývá tedy nic jiného, než používat již objevená řešní. Pixyho matrjoška je z tohoto úhlu pohledu prostá, geniální a nadčasová. V podstatě ji používám dodnes. :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0