« 1 2 »
Autor Zpráva
sziroco
Profil
V CSS se dá zvolit, který box model bude na vykreslení stránky použit. Otázkou tedy je, který zvolit.
Jaké jsou jejich objektivní výhody?
habendorf
Profil
IMHO nejlepší je quirk pro IE a standard pro zbytek.
sziroco
Profil
asi jsem to špatně zformuloval
měl jsem na mysli, které určování šířky u blokovejch prvků použít
tzn. jestli je lepší použít možnost, kde se padding počítá do šířky nebo variantu, kde její součástí není
habendorf
Profil
Ale přesně na to jsem ti odpověděl.
thingwath
Profil
CSS má určený box model, který se používá. Některé prohlížeče to různými způsoby dovolují přepnout. Toť vše. Výběr není, jsou jenom hacky pro zpětnou kompatibilitu s prohlížeči doby kamenné.
sziroco
Profil
to thingwath:
Jaktože nemáš výběr? Můžeš přece v DTD ovlivnit, v jakym módu se to bude vykreslovat.

to habendorf:
jenže já se ptám, jaký jsou výhody quirku a jaký standardu
teda za předpokladu, že pro všechny prohlížeče to bude stejně
Chamurappi
Profil
Reaguji na sziroco:
Ten, který nazývám okrajovým, považuji za lepší. Nabízí více volnosti, můžeš lépe kombinovat jednotky. Typická situace: celkovou šířku chceš mít přesně v pixelech či procentech, ale padding v em jednotkách (což je myslím typograficky vhodné). Při obsahovém box modelu jsi bez šance, musíš zanořovat další <div>, nejde sčítat jablka a hrušky.

Reaguji na habendorfa:
Popsal bys mi prosím, jaké jsou výhody standardního režimu v Mozille a Opeře a quirku v Exploreru? Vždyť tím jen přibyde nekompatibilit. Quirk režimy jsou mezi sebou mnohem více kompatibilní.

Reaguji na thingwathe:
On patrně již četl mé povídání o box modelech, ptá se na praktické výhody. Evangelizační omáčku si můžeš odpustit.
Vynechaný <!doctype> není hack. Stejně tak důvody pro vznik CSS 3 vlastnosti vlastnost [-moz-]box-sizing jsou čistě praktické. Výběr naštěstí je.
thingwath
Profil
CSS žádnou volbu opravdu nenabízí, vynechání DTD je hack prohlížeče, nic víc. V podstatě tím říkáte, že tento dokument není nic konkrétního, jenom nějaká změť tagů a prohlížeči přeber si to jak chceš. Že to funguje je možné jenom díky tomu, že prohlížečů zase není až tak moc, takže víte jak si to většina prohlížečů přebere. A s pocitem dobře vykonaé práce si pak jdete stěžovat, že musíte stránku zkoušet ve všech prohlížečích a všude vypadá jinak...
sziroco
Profil
to thingwath:
od čeho teda box-sizing je?

to chamurappi:
to je fakt :)
thingwath
Profil
Je to návrh ve stejném stavu jako XHTML2...
Chamurappi
Profil
Reaguji na thingwathe:
CSS žádnou volbu opravdu nenabízí
Až na ten chystaný box-sizing v návrzích CSS 3. Pravda, ten je momentálně ještě nevalidní, jelikož není v CSS 2. Uvidíme, za jak dlouho a jak dlouho validní bude :-)

V podstatě tím říkáte, že tento dokument není nic konkrétního
Hlavičkou s MIME typem říkám, že je HTML. Značkou <!doctype> mohu maximálně vyjádřit verzi. Obecný SGML dokument vyžaduje i SGML deklaraci -- a tu je možné vynechat v případě, že je koncové zařízení ušité na míru dané SGML aplikaci. To pro HTML (tedy „text/html“) platí, tudíž nikdo nepíše <!SGML html SYSTEM "http://www.w3.org/TR/html401/HTML4.decl">. Obdobně je možné vynechávat <!doctype> v případech, kdy cílové zařízení není validující a nebo kdy zná jen jedinou verzi dané SGML aplikace. Prohlížeče obojí splňují, což je správně.

Že to funguje je možné jenom díky tomu, že prohlížečů zase není až tak moc, takže víte jak si to většina prohlížečů přebere
Také populární mýtus. I bez <!doctype> se mohu opírat o definice v SGML standardu. Pro prohlížeč by nikdy neměl být směrodatný formální veřejný identifikátor, ten je jen jiným vyjádřením systémového identifikátoru (= odkazu na soubor s DTD, ten není povinný). Validátor si prohlédne svůj SGML katalog a řekne si „No vida, tak to je -//W3C//DTD HTML 4.01//EN, to má svoji DTD tam a tam, jde se validovat, hurá“ -- co však má dělat, když narazí na formální veřejný identifikátor, který nezná? Nemá, podle čeho validovat. Z čehož plyne, že z pohledu validujícího parseru platí, že každá nová verze HTML představuje tlustou čáru: „Optimalizováno pouze pro parsery novější než tahle specifikace, nechť si ostatní trhnou nohou“. To je fragmentace webu, v rozporu se základními principy => prohlížeče, které by užívaly validující parser, naštěstí nejsou.

A s pocitem dobře vykonané práce si pak jdete stěžovat, že musíte stránku zkoušet ve všech prohlížečích a všude vypadá jinak...
Chytnu tě za slovíčko: vzhled určuje CSS.
Ať vynechávám <!doctype> či nikoliv, naprosto drtivou většinu HTML kódů rozeberou prohlížeče stejně. Utvoří totožný strom. Stejně se nemůžeš spolehnout, že budou prohlížeče rozebírat kód podle dotyčné DTD. Většina ani nerespektuje SGML deklaraci. I kdybys jich měl milion, chovaly by se podobně jako stávající nejrozšířenější trojice, jelikož web se vyvíjí plynule.

Držme se, prosím, tématu box modelu.

Reaguji ještě jendou na thingwathe:
Je to návrh ve stejném stavu jako XHTML2
Ne tak docela. Prohlížeče ho mohou začít podporovat, aniž by nabouraly zpětnou kompatibilitu. I když riskují, že jim konsorcium přejmenuje vlastnosti či hodnoty tak, aby nebyly kompatibilní.
habendorf
Profil
Popsal bys mi prosím, jaké jsou výhody standardního režimu v Mozille a Opeře a quirku v Exploreru? Vždyť tím jen přibyde nekompatibilit. Quirk režimy jsou mezi sebou mnohem více kompatibilní.

Já neříkám že je to ideální, jen je to nejlepší co znám. Posílat i IE do standardu je možná jednodušší, ale co IE<6?

No a poslat vše do quirku? To ani v xhtml pokud vím nejde. Tvůj názor na xhtml znám, netřeba ho zde po sté opakovat.
SuE
Profil
habendorf: transitional xhtml nejde do quirku?
habendorf
Profil
SuE: S xhtml transitional nemám osobní zkušenost (nikdy jsem nepotřeboval), ale pokud budu věřit Pixymu tak ne http://wellstyled.com/html-doctype-and-browser-mode.html . Jinak jsem měl samozřejmě na mysli xhtml strict.

K původní otázce - zkrátka a jednoduše začínám takto

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

Podle mě je to nejuniverzálnější řešení, protože zajistím v podstatě stejné zobrazení ve všem. Chtěl jsem poradit, ne se hádat. Dělejte si to každý jak chcete.
SuE
Profil
myslím, že jsem to viděla na listamatic, že někdy jo - ale nikdy jsem to netestovala - http://css.maxdesign.com.au/listamatic/about-boxmodel.htm
ale liší se to tam třeba i od intervalu http://podklady.interval.cz/bien/730/rezimy.htm
tak ti nevim :-(
habendorf
Profil
SuE:

ad listamatic: no jistě, ale to je IE
ad interval: tam je jasně vidět, že nonIE prostě v xhtml do quirku nepošleš

Přesně proto jsem psal na začátku IMHO nejlepší je quirk pro IE a standard pro zbytek
čemuž odpovídá
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">


Jak říkám, mě to takhle vyhovuje nejvíc, někomu jinému třeba ne. Ale třeba ten, koho si ve webdesignu opravdu
vážím (viz kód), to dělá stejně, což mě potvrzuje že to asi není úplně špatná cesta.
Timy
Profil
ad quirk v XHTML:

Při tomto zápisu bude Opera, IE i Firefox používat ten "nestandardní" box-model (nevím, jak to bude u nějakých alternativních prohlížečů):

<?xml version='1.0' encoding='windows-1250'?>
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
<style>
* {-moz-box-sizing: border-box; box-sizing: border-box;}
</style>
habendorf
Profil
Timy: Jistě. Ale k čemu by to bylo dobré? Proč posílat něco do quirku, když nemusím? Stačí že tam musím poslat IE :o)
(pro IE běžící v quirku jsou bohužel dva pádné důvody, takže nic jiného nezbývá)
Timy
Profil
habendorf
Do této filosofické debaty se nechci moc zapojovat, protože můj názor na toto téma se částečně neshoduje s mou praxí :-). Reagoval jsem větu "No a poslat vše do quirku? To ani v xhtml pokud vím nejde."
habendorf
Profil
Timy: No ale podle mě to v xhtml opravdu nejde. To že to potom znásilním pomocí nestandardních css vlastností je jiná věc, ale hlavičkou to posílám pro nonIE vždy do standardu.
habendorf
Profil
Chamurappi: Typická situace: celkovou šířku chceš mít přesně v pixelech či procentech, ale padding v em jednotkách (což je myslím typograficky vhodné).

Tak tohle mi ještě nedá, sorry. Takže: zvětším písmo a velký text bude užší. Zmenším písmo a prťavý text se ještě roztáhne do šířky. To mi tak úplně geniální nepřijde.

Něco jiného je samozřejmě vertikální padding (třeba mezera mezi odstavci), ale ty zjevně mluvíš o horizontálním.
jozob
Profil
habendorf
"zvětším písmo a velký text bude užší"
Tomu nejak nerozumiem - prečo by sa mala zmeniť šírka textu?

"zmenším písmo a prťavý text se ještě roztáhne do šířky"
Tomu tiež nerozumiem - prečo by sa mala zmeniť šírka textu?

Ak som správne pochopil, tak Chamurappi hovoril o relatívnom určení paddingu, neviem čo si mienil tými dvomi vetami (???). Asi to nesprávne chápem.
habendorf
Profil
prečo by sa mala zmeniť šírka textu?

No právě kvůli paddingu v em. Však vyzkoušej

<p style="padding:0 5em">
Sem si dej nějaký delší text.
</p>
jozob
Profil
habendorf
Počkať... teraz mi došlo, že hovoríme o jednej veci a rozmýšľam nad inou vecou (to sa mi takto zavčas rána stáva). Ja som si myslel, že hovoríš o šírke jednotlivých znakov :-). Uvediem to na presnú mieru - nezúži sa text, ale vnútorná časť oblasti, v ktorej sa nachádza daný text.

Efekt, že sa spolu so šírkou textu mení aj veľkosť odsadenia môže byť špecifický. Niekedy môže webdesigner vyžadovať, aby sa určitý blok choval práve týmto spôsobom. Takže toto zostáva čisto na webdesignerovi a debata je zbytočná.
habendorf
Profil
Niekedy môže webdesigner vyžadovať, aby sa určitý blok choval práve týmto spôsobom.

Já neříkám že někdy to nemůže být vyžadováno (i když dost těžko). Debata by byla skutečně zbytečná, kdyby Chamurappi netvrdil že to je typograficky vhodné.
llook
Profil
Proč posílat něco do quirku, když nemusím? Stačí že tam musím poslat IE

Pokud tam musíš poslat IE, pak by mohlo být argumentem, že se to pak bude chovat všude stejně. Přidej ještě -khtml-box-sizing a seš komplet (kolik lidí používá jiný renderer než Trident, Gecko, Opera a KHTML?).
jozob
Profil
habendorf
Možno by bolo zaujímavé, keby sa dali používať v CSS matematické výrazy. V tom prípade by sa dala použiť finta, že by sa k určitej napevno zadefinovanej hodnote pripočítala nejaka menšia relatívna hodnota, dajme tomu, že 0.2em. To by mohlo byť v určitých prípadoch celkom vhodné. Ale to už sme celkom mimo, takže ja končím OT.
llook
Profil
jozob
Jeden prohlížeč, kdysi velmi inovativní, s podobným nápadem už přišel. Ale ostatní to neadoptovali a tak máme expressions jen v tom jednom...
Chamurappi
Profil
Reaguji na habendorfa:
Posílat i IE do standardu je možná jednodušší, ale co IE<6?
Jistě, starší Explorery standardní režim nemají. Tudíž se pro ně vůbec nic nemění. CSS hacky a podobné oslizlosti na ně zapůsobí úplně stejně, jako když Explorer 6 do standardního režimu přepneš, ne? Šestka je ten horký brambor, který přehazuješ mezi rucemi „W3C kompatibilní“ a „starší Explorer kompatibilní“.

(pro IE běžící v quirku jsou bohužel dva pádné důvody, takže nic jiného nezbývá)
Standardní režim Exploreru 6 má své nevýhody. Bývá kritizován zejména za to, že není zcela standardní a má méně tolerantní CSS parser. To jsou dva pádné důvody.

No a poslat vše do quirku? To ani v xhtml pokud vím nejde.
Bereme-li XHTML jako celou rodinu jazyků, nejmenším prohřeškem by byl patrně tento postup:
1) používat MIME typ „text/html“
2) vynechat <!doctype>
Dokument by byl stále právoplatným dialektem XHTML (i když ten MIME typ říká, že ho bude rozebírat HTML parser), neboť jazyk je určen jmenným prostorem. Bohužel by se tento dialekt nemohl opřít o existující specifikace a kontrola validity by nemohla býti prováděna běžným validujícím XML procesorem, ani W3C validátorem při výchozím nastavení.

Ale třeba ten, koho si ve webdesignu opravdu vážím (viz kód), to dělá stejně, což mně potvrzuje, že to asi není úplně špatná cesta.
I mistr tesař se někdy utne. Jeffrey Zeldman ve své knize krátce obhajuje okrajový box model, což mi potvrzuje, že i plesnivý pomeranč může chutnat výtečně, umrtvíme-li chuťové buňky. Používejme argumenty místo autorit, prosím.

Ale k čemu by to bylo dobré? Proč posílat něco do quirku, když nemusím? Stačí že tam musím poslat IE :o)
Timyho kód nepřepíná režim. Přepíná box model. Škoda, že jsou tyto dvě debaty takto nešťastně promíseny.
A původní tazatel se ptal, který box model je výhodnější. Chtěl by asi slyšet praktické výhody obou, ne otázku „proč bych používal ten druhý, když nemusím“ :-)

Quirk režim se od standardního neliší jen v box modelu. Jeden příklad za všechny: Netscape 4 obsahoval chybu -- některé vlastnosti písma se nedědily do tabulek. Tato vlastnost přežila v quirk režimech dnešních prohlížečů jako dědictví po vzdáleném strýčkovi. Nastavíš-li něčemu v tabulce velikost písma v procentech, počítá se při standardním režimu ze svého rodiče. Při quirku vždy ze 100 %. Přesně tak to funguje v Exploreru, Mozille i Opeře. Hádej, jak si pomůžeš, když právě jeden z této trojice přepneš do quirku.


Děkuji, že ses k původnímu tématu nakonec vyjádřil.
Takže: zvětším písmo a velký text bude užší. Zmenším písmo a prťavý text se ještě roztáhne do šířky. To mi tak úplně geniální nepřijde.
Rozlišujme dvě věci:
1) délka řádku relativně k velikosti písma -- jinými slovy počet znaků na řádek
2) horizontální odstup od okraje sloupce relativně k velikosti písma
Ta délka řádku se při zvětšení písma vždy zmenší, pokud je celková šířka fixní. Nic překvapivého. S větším textem jsou jednotlivé řádky méně obsažné, s menším více. Moc dlouhé řádky se hůře čtou, neboť člověk snadno „ztratí nit“, moc krátké vypadají divně. Tento problém však přímo nesouvisí s dotyčnou mezerou. Padding o velikosti 5em nepovažuji za rozumný při žádné velikosti písma.
Mezera mezi okrajem sloupce a začátkem textu má za úkol jasně oddělit onen okraj (dejme tomu, že je zřetelný) od textu. Představ si sloupec s malým černým písmem (na výšku měří běžné písmeno cca 10px), jednopixelovým černým okrajem a třípixelovým paddingem. V běžném stavu krásně čitelné. Zvětšíš-li písmo na 300% a poodstoupíš-li dále od obrazovky, přečteš text, ale okraj tě bude rušit. Vzhledem k velikosti písma bude totiž padding moc malý -- bude menší než mezera mezi jednotlivými slovy. Kdyby byl v takové situaci padding velký 9px, předpokládám, že by se ti to líbilo více. A to i přesto, že by ty promarněné pixely poslaly nějaké to slovo o řádek níže.
Jak si to tak po sobě čtu, vidím pokus o popis asi té nejtriviálnější modelové situace. Zajisté by šly vymyslet názornější extrémní situace. Mám se o to pokusit?

Debata by byla skutečně zbytečná, kdyby Chamurappi netvrdil že to je typograficky vhodné.
Považuji padding v em jednotkách nejen za typograficky vhodný, ale i za obecnější a čistější řešení. Formátuji-li text, který není závislý na něčem absolutním, nikdy nenastavuji padding fixně.
habendorf
Profil
llook: Pokud tam musíš poslat IE, pak by mohlo být argumentem, že se to pak bude chovat všude stejně.
Jasně, ale to si zajistím i jinak.

Chamurappi: pro IE běžící v quirku jsou bohužel dva pádné důvody, takže nic jiného nezbývá
Měl jsem na mysli:
1) problém IE<6
2) Ve standardu neumím simulovat (tím samozřejmě netvrdím že to nelze, jen to neumím) min- a max-width, v quirku ano.
3) Ještě je i třetí důvod - řekl bych, že v quirku se IE chová trochu předvídatelněji než ve standardu.

Používejme argumenty místo autorit, prosím.
S tím nelze než souhlasit, byl to jen příklad. Já Plaváčka nepovažuji za autoritu, ale za někoho, kdo to prostě umí.

Při quirku vždy ze 100 %. Přesně tak to funguje v Exploreru, Mozille i Opeře. Hádej, jak si pomůžeš, když právě jeden z této trojice přepneš do quirku.
Musím připsat jeden řádek, to je pravda. Ale mě se to vrátí jinde. Nikdy jsem neměl problém srovnat velikost písma ve všech prohlížečích (míněno při IE quirk, zbytek standard). (A samozřejmě nemluvím o nastavení v px.)

Padding o velikosti 5em nepovažuji za rozumný při žádné velikosti písma.
Jistě, 5em tam bylo proto, aby to "bylo vidět".

CSS hacky a podobné oslizlosti
Je otázka, zda používání naprosto standardních postupů, jako např. selektorů, lze považovat za oslizlosti. Nějaké skutečné oslizlosti typu _vlastnost nebo style type="text/nonsense" jsem nikdy v životě nepoužil. Prostě jsem je nepotřeboval.
« 1 2 »
Toto téma je uzamčeno. Odpověď nelze zaslat.