« 1 2 3 »
Autor Zpráva
Aleš Janda
Profil *
Všude se píše "Dávejte soubor se styly do externího souboru". Není to blbost? Vzal jsem si všechna pro a proti a zjistil jsem, že je lepší je mít přímo v HTML:

Pro externí soubor:

1) Styly jsou pro všechny stránky jen na jednom místě
- Zbytečné. Téhož výsledku dosáhnu, pokud mám styly v jiném souboru, ale skriptem (např. PHP) je vložím do stránky. Tedy nepodstatné.

2) Stránka se rychleji načítá, protože se styly načtou jen jednou
- Nesmysl. Co je v cache, to se sice nestahuje znova, ale stejně se kontroluje ze serveru, jestli se soubor nezměnil. Což se rovná novému HTTP požadavku. Jak mi potvrdí každý GéPRSák, HTTP požadavek na načtení pár bajtů je horší než stažení několika kilobajtů navíc. Takže taky nepodstatné.

3) Různé soubory pro různé zařízení
- To je opravdu výhoda. Jde jen o to, jak často je využívaná. Podle mě je mnohem lepší zpracovávat stránky pro různá zařízení i odlišnými skripty, pouze jinými styly si zpravidla nevystačíme.

Jiná "pro" mě nenapadla.


A teď proti:

1) Než se styly načtou, stránka se zobrazuje rozhozená
- To je podle mě největší mínus. Když se stránka načítá, snažím se v ní nějak orientovat. Není to však vůbec nijak formátované. Sotva se "chytnu", načtou se styly a stránka se celá přeformátuje.

2) Stránka se špatně ukládá
- Abych zachoval formátování, musím ji uložit CELOU, tj. i se styly a zpravidla i s obrázky atd. To je balast navíc. Mnohem lepší je stáhnout si jen jeden soubor.

3) Externí soubor je pořád stejný, nemění se v závislosti na stránce
- Pokud styl vkládám přímo do HTML skriptem, můžu se rozhodnout, že nějaký kód dám navíc, nějaký vůbec a nějaký jinak - podle toho, jaká se má zobrazit stránka a jak si to momentálně přeje návštěvník. U statického externího souboru tohle nelze.


Rád bych slyšel vaše názory, proč (ne)používáte externí .css soubor. Asi to opravdu nechápu. Děkuji.

P.S.: Tento dotaz jsem kladl i jinde, bohužel nikdo mi dosud neuvedl pádný důvod, který by převážil uvedené nedostatky.
Petra
Profil
proti 1: To si nemyslím, nemám rychlou linku, ale normálně dělané sránky se mi načítají úplně v pohodě, rovnou tak, jak mají vypadat, nic se nepřekresluje. Nebo teda aspoň když se použije klasicky <link> při importování se to možná děje.

proti 2: Mohli bychom polemizovat, jestli je lepší mít stejné množství balastu v jednom souboru nebo ve dvou :-) Ale co může být problém, když naopak ukládám celý web, třeba 300 stránek, to pak uložím 300x tentýž styl. Ale nemyslím si, že by kterýkoliv takto stažený balast někoho významně trápil.

proti 3: Není přece problém, generovat si stejným způsobem, který použiju styl a do toho případně importovat nějaký základ, stejně tak je tu pořád možnost si něco navíc vložit rovnou do <style>

pro 3: to se dá i ve <style>

pro 4: SEO, vždyť ty CSSka mají třeba 10kB :-)
Nai Dzet Quiv
Profil
PRO:

ad 1) méně stažených dat, ono se to ukládá do cache.

ad 2) MŮJ NÁZOR na toto je v bodě 1).

ad 3) Nemyslím. (Petra mi to potvrdila: média můžeš odlišit i ve <style>; nebyl jsem si jistý)

PROTI:

ad 1) měl jsem modem a nesouhlasím (+ viz PRO ad1)).

ad2) Mně to problém nedělá.

ad 3) Ale kód, který je pro všechny stejný, převažuje, takže viz PRO ad 1).
flying gentleman
Profil
Nai Dzet Quiv:abych se priznal,zhola nic jsem z tve odpovedi nepochopil, je to jen jakysi soubor zkratek a odkazů na odkazy odkazů:D
já osobne teda pouzivam externi css, nevim proc, ale prijde mi to lepsi, navic nemam moznost to nekam vskriptovat, protoze to neumim:(
je pravda, ze v opere se mi nektere stranky nejdriv nactou bez stylu, holt opera je moc rychla.
Charlie
Profil
Já jsem jednoznačně pro externí CSS. Souhlasím, HTTP požadavek navíc, dobře. Nadruhou stranu, jeden HTTP požadavek zabere i třeba obrázek. To znamená, že pokud je na stránce více než jeden obrázek, pak se to na výsledku vůbec nepromítne.

Pro mě je největší nevýhoda to, že se styly načtou dříve než kód, protože se píší do <head>. Někde jsem četl doporučení, že by návštěvník měl vidět alespoň část obsahu maximálně po dvou vteřinách. Když by byly třeba již zmiňované 10 kB styly přímo v HTML, stránky by se zobrazily mnohem později.

Dále je třeba brát v úvahu také textové prohlížeče. Ty externí styly nenačítají, ale styly zapsané v kódu načíst musí a potom je zas vymažou.

Tak proč to? Nesouhlasím se všemy názory, proč CSS nepsat do externího souboru. Nejlepší předností je hlavně cache, která se dá ještě posílit pomocí skriptovacích jazyků.
meldo
Profil *
Ja si myslim ze css vzniklo hlavne pre to, aby sme nemuseli napr. pri zmene farby nadpisu robit zmenu na kazdej stranke ale len raz.
to je podla mna najvecsie plus ktore daleko previsi uz spominane minusy.
Fred
Profil
Mrknul jsem se na seznam, centrum i atlas, všichni mají css v externím souboru, asi vědí proč :-)
Nai Dzet Quiv
Profil
Tak jinak: když se nemůžete rozhodnout, jak styly použít, nepoužívejte je; není nad strukturovaný kód. ;-)
Radek Hrabůvka
Profil *
Stačí se trochu zamyslet. Pro párstránkový web (to myslím skoro doslova) s jednoduchým stylopisem bych zvolil stylopis na stránce. Nejen pro seznam, centrum i atlas, ale pro každý vícestránkový web je výhodnější samostatný css soubor.
Charlie
Profil
Myslím, že pokud má web více než jednu stránku, tak se externí CSS určitě vyplatí. A když má jen jednu, tak je to stejně docela pofidérní.
Petra
Profil
Otázka ale myslím zněla PROČ je lepší externi *.css ;-)
Charlie
Profil
Petra, to jsem vysvětlil už před tím :-)

Objevil jsem další PRO externí CSS! Některé editory, které špatně rozpoznávají kódování často přkódují stránku a není jiná cesta ven než přepsat všechny "poničené" znaky ručně. Když máte CSS v externím souboru a editujete ho, tak je jedno, v jakém kódování ho uložíte, protože funguje stále stejně.*

* u zapisování textu do stránky přes CSS2 to kódování důležité je, ale jinak ne.
peta
Profil *
Aleš Janda
Plusy:
1) Ano, lze je vlozit pres PHP, viz tvuj bod 2, ale nedela se to.
2) Je to asi stejny, jako nacitat o jeden maly obrazek vice. Takze nevidim problem.

Minusy:

1) Ne, spravne navrzena stranka se nezobrazuje rozhozena. Styl je jenom pro zkrasleni. Coz mnozi nechapou a zalozi na tom stranku a pak to dela to rozhozeni (ted posledne mi kdosi ukazoval 19k css, kdezto bezny css ma tak 3-8).

2) viz minus 1, spatny navrh.

3)
"- Pokud styl vkládám přímo do HTML skriptem, můžu se rozhodnout, že nějaký kód dám navíc, nějaký vůbec a nějaký jinak"
Ano, ale delka trvani scriptu se zhruba vyrovna casu na preneseni celeho, tim PHP bych tam nalinkoval spis nejaky druhy nebo jen male upravy.
Zmena stylu pro navstevnika se resi pres cookies. Neni problem udelat 5 ruznych CSS
Viz www.rar.cz/rarnova/ -klikni si z teto na forum a ten prvni radek jsou CSS (ale neni to tam javascriptem zacleneno do cookies)

Ja jsem pro externi, aby nedoslo k omylu a nikdy ne jinak. Malickosti, jednostrankove, menim primo ve <style> v te strance, zadnym PHP


flying gentleman
"v opere se mi nektere stranky nejdriv nactou bez stylu, holt opera je moc rychla."
Napadlo te treba, ze FF ma zamerne nastavene zpozdeni zobrazeni na obrazovce, prave kvuli temto nepeknostem?

Charlie
Lze mozna docilit pridanim na konec JS, ktery ti dopise CSS, aby se ti CSS nacetl pozdeji, jinak viz odpoved pro "flying" o FF.

Fred
To zrovna neni spravne prirovnani, seznam a centrum :))) Mam zkusenosti, ze tyhle vetsi firmy maji stranky spis spatnejsi :) Ale seznam se o moc zlepsil od posledne.
Anonymní
Profil *
Ad kešování: není to tak docela, záleží na nastavení serveru prohlížeče, ale při defaultním nastavení prohlížeče a normálním (tedy ne nějak zvrtaném) nastavení serveru se styl stáhne a další požadavek se bude posílat až po restartu prohlížeče. (Nehledě k tomu, že i kdyby to tak nebylo, pořád je to efektivnější v případě využití proxy.)
A pokud budeš chtít, nemusí se styl znovu stahovat skoro nikdy: můžeš mu nastavit takové hlavičky, že zůstane uložen v keši prohlížeče třeba 10 let, musíš ovšem při každé aktualizaci změnit URL.
Takže s tou rychlostí je to poměrně jednoznačné, navíc je tu nižší objem přenesených dat.
Acci
Profil
peta
Mozilla (Gecko) podle mých zkušeností na externí styl s vykreslováním čeká vždy -- jak přes link, tak na @import. Ale moc jsem to netestoval, takže mě v tomto ohledu prosím doplňte (ocením info mailem).

Opera naopak vždy načítá stránku bez čekání, podobně jako Explorer při zápisu s @import.


Citace z Jak psát web » Na co stránka při vykreslování čeká
Aleš Janda
Profil *
proti 1: To si nemyslím, nemám rychlou linku, ale normálně dělané sránky se mi načítají úplně v pohodě, rovnou tak, jak mají vypadat, nic se nepřekresluje. Nebo teda aspoň když se použije klasicky <link> při importování se to možná děje.
Nadruhou stranu, jeden HTTP požadavek zabere i třeba obrázek. To znamená, že pokud je na stránce více než jeden obrázek, pak se to na výsledku vůbec nepromítne.
Je to asi stejny, jako nacitat o jeden maly obrazek vice. Takze nevidim problem.


Záleží na prohlížeči. Jak už tu bylo řečeno, Opera nebo Explorer to dělá. A rozhodně nesouhlasím s tím, že obrázek se také natahuje. Obrázek se sice také natahuje, ale ten úplně nerozhodí layout, jen vyplní někde nějaké prázdné místo. Takže zatímco obrázek může být nahrán v podstatě kdykoliv, styl by tu měl být ještě před obsahem.


Ja si myslim ze css vzniklo hlavne pre to, aby sme nemuseli napr. pri zmene farby nadpisu robit zmenu na kazdej stranke ale len raz.
to je podla mna najvecsie plus ktore daleko previsi uz spominane minusy.


Ale přece je tu ještě PHP, viz 1. bod "pro".


Objevil jsem další PRO externí CSS! Některé editory, které špatně rozpoznávají kódování často přkódují stránku a není jiná cesta ven než přepsat všechny "poničené" znaky ručně. Když máte CSS v externím souboru a editujete ho, tak je jedno, v jakém kódování ho uložíte, protože funguje stále stejně.*

Já samozřejmě mám na serveru také styly zvlášť, vždyť je tam vkládám, takže nepodstatné. Kromě toho, to je problém jen toho, kdo používá takový program ;-)


1) Ano, lze je vlozit pres PHP, viz tvuj bod 2, ale nedela se to.

To, že se něco nedělá, nemusí znamenat, že je to špatné, ale že někdo třeba PHP (aj.) neumí. Kromě toho, díky PHP naprosto nepotřebuji žádné hacky atd., co je to za prohlížeč zjistím už na úrovni serveru.


1) Ne, spravne navrzena stranka se nezobrazuje rozhozena. Styl je jenom pro zkrasleni. Coz mnozi nechapou a zalozi na tom stranku a pak to dela to rozhozeni (ted posledne mi kdosi ukazoval 19k css, kdezto bezny css ma tak 3-8).

Tohle nechápu. Vám přijde stránka bez stylů a se styly víceméně stejná? Pokud se začtu do stránky bez stylů (a nemá krutě tabulkový layout) a pak se "donačtou" styly, totálně ztratím představu o tom, kde je ten text, který jsem právě četl.


Ano, ale delka trvani scriptu se zhruba vyrovna casu na preneseni celeho...

To ne, délka vykonávání běžného PHP skriptu je zanedbatelná.


Zmena stylu pro navstevnika se resi pres cookies. Neni problem udelat 5 ruznych CSS...

Myslel jsem spíše změnu stylu ze strany serveru. Něco jako "na této stránce použiju ten samý kód, ale chci, aby se mi tenhle box zobrazoval jinak". Je to opačný přístup. Neměním kód, ale styl (nepatrně), proč ne. To s externím CSS vůbec není myslitelné.
Fred
Profil
To s tím charsetem není pravda! Pokud bude stylopis takto přímo ve stránce

<style type="text/css">
<!--
p:after {
content: "ěščřžýáíé";
}
-->
</style>

zobrazí se správně, pokud ale bude toto v externím stylopisu a bude jiný charset v css než v html nezobrazí se to správně ani v Gecku ani v Opeře. Lze to obejít takhle
<link href="prezentace.css" type="text/css" rel="stylesheet" charset="windows-1250" />
Pokud doplním charset bude vše v pořádku.
Fred
Profil
Tohle mě ještě trochu provokuje: Myslel jsem spíše změnu stylu ze strany serveru. Něco jako "na této stránce použiju ten samý kód, ale chci, aby se mi tenhle box zobrazoval jinak". Je to opačný přístup. Neměním kód, ale styl (nepatrně), proč ne. To s externím CSS vůbec není myslitelné. Proč by ne je přeci bambilión způsobů jak toho dosánout, od jiných tříd a ídéček na konkrétní stránce, přes další stylopis navíc až po změnu stylu pomocí php (pokud url tohle css vlastnost tahle)
Charlie
Profil
pokud ale bude toto v externím stylopisu a bude jiný charset v css než v html nezobrazí se to správně ani v Gecku ani v Opeře

Přesně to jsem myslel. Mimochodem pěkný tip na obejítí.
peta
Profil *
Takova mozna malickost, ono to primo s CSS nesouvisi,
ale menu delane do HTM a neni-li nijak vpisovane, tak dela docela binec s google, protoze se tak vlastne na kazde strance opakuji slova.
Cili docela dobry pouzit iframy v tomto pripade.
Nyunyu
Profil *
Já nevím, ale hlavní nevýhodu používání stylů přímo na stránce vidím v tom, že když chci změnit jednu jedinou vlastnost, musím přepsat všechny zdrojáky, což by mě asi nebavilo:-) Můžu sice použít PSPad a hledání v souborech, ale to není zrovna praktické
peta
Profil *
Nyunyu: Toz, styl do stranku muzes vepsat PHPcem, to neni problem, jako include styl1.csx
A protoze PHP stranku generuje, tak uzivatel to vidi jako soucas stranky, kdezto ty to mas jako jeden soubor. Nevyhoda tohoto zpusobu je pomalost a zdrzovani, zbytecna zatez serveru.
printf-jinde
Profil *
Zatím to řeším tak, že mám dva externí css soubory (pro normální zobrazení a pro tisk) a oba je PHPkem vkládám do hlavičky stránky (to co se nedělá). Důvodem je, že stále pracuji na úpravě designu, takže potřebuju aby se změna stylu okamžitě projevila. Vypadá to krásně, když 5KB zabírá samotná stránka a 10KB oba styly :-). Až budu hotov, nechám je jako externí - což znamená jen změnit dva řádky v PHP.

Taky mě napadlo sestavovat styl dynamicky podle aktuální stránky, ale myslím že je to děsná otročina. Když už, tak mít různé css pro různé stránky, ale ani to se mi nelíbí.

Preferuji tedy používání externích css souborů, s těmito výjimkami:
pokud se jedná o jedinou HTML stránku (takových případů je málo) nebo pokud počítám s tím, že stránky si uživatelé budou ukládat a archivovat - nevím jak vám, ale mně se strašně snadno stane, že zapomenu zkopírovat pomocný adresář s obrázky, styly a dalšími soubory. Některé stránky pak vypadají příšerně. Je fakt, že stránka bez stylu by měla být dobře čitelná, ale někdy to moc nejde.

Všiml jsem si ale, že u klíčových prvků stránky, které mají vliv na čitelnost, jako například rozvržení sloupců se často užívá zápis stylu přímo do elementu.
Nai Dzet Quiv
Profil
Jen bych chtěl říct, že generování stylů dle aktuální stránky (= generují se styly pro prvky / konstrukce, které se na stránce opravdu vyskytují) mi přijde jako hloupost.
Myslím, že nikoho nezabije, i když styly budou mít třeba 12kB (já kód docela roztahuji a vyjde mi to většinou do 7kB)... A navíc by to zpomalilo zpracování na serveru (i když nevím, jestli do takové míry, že by to uživatel poznal). Zbytečné.
peta
Profil *
printf-jinde: "Všiml jsem si ale, že u klíčových prvků stránky, které mají vliv na čitelnost, jako například rozvržení sloupců se často užívá zápis stylu přímo do elementu."

to jsou dodelavky, si mysli... se mrkni na stare rar.cz , tam je to na kazde strance. Zkratka postupne, jak se to vyviji, tak se neco meni a nejlepe primo do toho PHP to vepsat do prvku :) Clovek najde neco dobreho, opravi a je liny psat CSS a tak. Prepisovat externi CSS znamena prepsat CSS pro vsechny stranky a kdo vi, co to udela.
Kajman
Profil *
K tomu http požadavku, který kontroluje, zda byl soubor.css změněn... Můj ff to nekontroluje při každém klikání. Jen když dám reload. Takže ušetření na straně klienta i serveru tam bude.

A tipnul bych, že prohlížeč si dává ty styly do nějaké struktury v paměti, aby se mu pak dobře přiřazovaly k jednotlivým elementům.

Taky asi nemá cenu cpát styly prohlížečům, které je nepoužívají.

Prostě myslím, že je ta obecná rada je v těch knížkách v pořádku.
mila
Profil
<flame>
A co takhle žádné styly? Viz Google - ten vypádá ve FF i IE 3.0 strejně....
</flame>
Noira
Profil *
No, jelikož já používám asi 6 .css souborů (tabulky, odkazy, odlišné menu...) tak je stokrát rozumější mít je mimo. Mívala jsem je v hlavičkách, ale je to na palici. Výrazně to otravuje přehlednost kódu (rolování...).
Do hlavičky nebo přímo k prvkům dávám styl na "dodělávky", prostě když to nemá cenu zapracovávat do společných tabulek.
Aleš Janda
Profil *
Jo, díky za Vaše názory. Dovolil bych si to nějak shrnout.

Externí styly jsou jistě sémanticky správnější, tak by to mělo být a v budoucnu se to jistě prosadí. Zatím ovšem kvůli několika problémům je vhodnější použít interní styly, ač to není tak "čisté".

V knížkách se uvádí pouze externí styly jednak právě kvůli té sémantičnosti, ale taky hlavně proto, že se zpravidla neučí CSS a PHP v jedné knížce a nikdo tedy nemůže nutit čtenáře používat skriptování.

Jinými slovy: umíš-li PHP (nebo něco podobného), chceš-li se vyhnout problémům, vkládej styly skriptem. V ostatních případech jsou vhodnější externí styly.
Leo
Profil
"Zatím ovšem kvůli několika problémům je vhodnější použít interní styly"

A na to jste prisel jak? Ja o zadnych problemech s externim stylem nevim, naopak vim o spouste vyhod. Semantiku a jina sprosta slova do toho netahejte. Jde o rychlost (stahovani stranek pro uzivatele, predelavani a udrzbu webu pro tvurce) a moznosti rozsireni. Podstatne je oddelit vzhled stranky od struktury informaci.

"Jinými slovy: umíš-li PHP (nebo něco podobného), chceš-li se vyhnout problémům, vkládej styly skriptem. V ostatních případech jsou vhodnější externí styly."

Blbost.

Leo
« 1 2 3 »
Toto téma je uzamčeno. Odpověď nelze zaslat.

0