Autor Zpráva
34111
Profil
Tak nevím. Testuji webovou aplikaci na různých systémech a prohlížečích. V Internet Explorer verze 6, 7, 8 a 9 se vůbec nenačítá hlavní CSS styl. Zkrátka jakoby nebyl. Linkuji přes klasické <link href="program/inc/default/css/main.css" rel="stylesheet" type="text/css">. Link je v hlavičce header.php, ta se vkládá do kažé stránky v rámci index.php přes require.. CSS soubor je poměrně velký - má 7 tisíc řádků. V header.php mám ještě před samotným začátkem <html> asi dva tisíce řádků PHP kódu - hlavně pro přihlášení uživatelů, cookies apod. Nenapadá vás, kde může být problém?
M4n
Profil *
Bez ukázky ti nikdo neporadí.

Mimochodem, taková velikost souborů zcela spolehlivě svědčí o mizerné kvalitě programu/kódu a (ne)kvalitách jeho autora.
34111
Profil
M4n:
Taková velikost souboru zcela spolehlivě svědčí jen o tom, že jsi je nikdy neviděl a tvoje odpověď zcela spolehlivě svědčí o tom, že bys neměl radit druhým na odborném fóru, pokud nemáš ani základní znalosti v dané problematice, protože:

1. PHP je jazyk výhradně serverový, prohlížeč nehraje roli. Proto pokud jak píšu se problém týká pouze prohlížečů IE 6, 7, 8 a 9, věř mi, že PHP kód vidět nepotřebuješ. Nepotřebuješ vidět ani žádný jiný kód, jasně jsem ti uvedl kód nalinkování CSS souboru a ten ti k samotnému rozluštění problému stačí.

2. Moc si nedovedu představit, za jakých okolností by se neměl načíst CSS soubor jednoduchým <link> kódem. Prostě to nedává smysl. V době psaní příspěvku jsem programoval asi 18 hodin v kuse. Po sedmi hodinách spánku jsem problém vyřešil za pět vteřin.

3. Pokud se na celou věc podíváš "neunavenýma očima", musí ti být jasné, že chyba není v načtení CSS souboru, ale až v samotném CSS souboru. Pokud se zdá, že se CSS soubor vůbec nenačetl, tak asi chyba bude někde na prvních řádcích stylopisu... A hle, třetí řádek stylopisu: filter: "progid:DXImageTransform.Microsoft.Shadow(Strength=2, Direction=135, Color='#00000')"; IE tuto vlastnost nezná a proto se zastavil a celý zbytek stylopisu vůbec nezobrazil, jako by nebyl. Resp. zná ji pod -ms-. Takže oprava na několik sekund a vše funguje, jak má.

4. Velikost souboru je snadno vysvětlitelná - dělám to tak vždy. Pokud pominu fakt, že se jedná o extrémní projekt, který s běžnou webovou stránkou nemá nic společného, tak vždy do první betaverze mám stylopisy všechny v jednom souboru oddělené komentáři. Je to pohodlné, vyhledávat jen v jednom souboru a dělat potřebné úpravy. Jakmile projekt odladím, jednoduše na základě komentářů během pár vteřin stylopisy rozdělím do různých souborů.

Takže příště si nech výklady o kvalitách jiných a raději zapracuj na kvalitách svých, protože jak vidno, jsou mizerné...
Prochy
Profil
Aha a jakpak jsme mohli vědět, že máš chybu uvnitř CSS souboru, když si nám ho neukázal? Každý nedisponuje věšteckou koulí, aby ti dokázal poradit bez potřebných informací. :)
M02
Profil *
Martin Brodecký:
Já jsem taky nechtěl ukázku toho tvého prasečího PHP kódu, spokojil bych se s tím, co vyprodukoval na výstupu. Nebo toho fajnového CSS souboru, co je delší než neminifikovaný bootstrap.
34111
Profil
Prochy:
Na to, abys odhalil celý problém nepotřebuješ věšteckou kouli, ale pouhopouhou logiku. Jak jsem k řešení došel jsem zde popsal. To, že je chyba uvnitř CSS jsem odhalil logikou a neměl jsem více informací než vy na fórum. To o jakou chybu se jedná uvnitř CSS už samozřejmě vyřešit z vašeho pohledu nešlo, ale logicky dojít k závěru, že je chyba přímo někde v CSS bylo jednoduché. Ani bych se tu o tom nedohadoval, ale rozčílil mě koment, který nejen, že neporadil, ale ještě začal bezdůvodně urážet a to si myslím na odborném fóru nemá co dělat. Kdyby autor komentu alespoň mluvil k věci a nebo mlčel, když je sám hloupý...
Keeehi
Profil
Martin Brodecký:
Velikost souboru je snadno vysvětlitelná - dělám to tak vždy. Pokud pominu fakt, že se jedná o extrémní projekt, který s běžnou webovou stránkou nemá nic společného, tak vždy do první betaverze mám stylopisy všechny v jednom souboru oddělené komentáři. Je to pohodlné, vyhledávat jen v jednom souboru a dělat potřebné úpravy. Jakmile projekt odladím, jednoduše na základě komentářů během pár vteřin stylopisy rozdělím do různých souborů.
Řešením (které je běžným standardem, obzvlášť u extrémních projektů) je použít IDE nebo nějaký inteligentní editor, který zvládne vyhledávat ve více souborech a hlavně CSS preprocessor.
Tomášeek
Profil
Martin Brodecký:
A proč tedy píšeš na diskusní fórum, kdy je pouhou logikou jasné, že je chyba v CSS souboru a ten jsi záměrně nepřiložil? A nač ta omáčka kolem, že tam máš mraky PHP, které není logicky směrodatné? Nenapadlo tě logicky nám ukázat ten CSS kód, když jsme všichni logicky věděli, že je potíž v něm?

Něco tady smrdí, to už je asi úděl té logiky :-)
M4n
Profil *
Martin Brodecký
Správně strukturovaný program by měl mít pro každou entitu (objekt) samostatný soubor, žádný objekt by neměl mít více než 10 až 15 prvků a každá metoda by měla mít 5 až 10 řádků.

Není to dogma, ale velmi, velmi spolehlivý ukazatel nekvalitního a špatně laditelného i upravitelného kódu. Především když tyto limity překračuješ 100x, což děláš. Takže ano, nemusím vidět ani znak z toho kódu, abych věděl, že jsi mizerný programátor.
Taurus
Profil
M4n, Martin Brodecký:
Podívej se, M4n, napsat někomu, že použil nic moc kód, fajn. Ale nazývat někoho hned mizerným programátorem nebo psát o jeho kvalitách, to už je přes čáru. Nehledě na to, že se na to nikdo neptal a usuzovat z jednoho projektu tak silné tvrzení není ani slušný, ani logický. Podobně, Martin Brodecký by své domněnky mohl taky mírnit, bez podkladů se těžko radí. Lidé na fóru pomáhají zdarma a pokud chce někdo radu, jeho v jeho zájmu dodat vše potřebné. Nejsme psi, kteří chytají hozené klacky.
Chamurappi
Profil
Reaguji na Martina Brodeckého:
A hle, třetí řádek stylopisu: filter: "progid:DXImageTransform.Microsoft.Shadow(Strength=2, Direction=135, Color='#00000')"; IE tuto vlastnost nezná a proto se zastavil a celý zbytek stylopisu vůbec nezobrazil, jako by nebyl.
Nějak tomuto vysvětlení nevěřím. Nemáš ukázku? Explorer vlastnost filter samozřejmě zná. Přestože by hodnota měla být bez uvozovek, špatná hodnota nemůže zastavit zpracování celého CSS.

Resp. zná ji pod -ms-.
Od verze 8 ji zná i s tím prefixem a pak potřebuje uvozovky.

Takže oprava na několik sekund a vše funguje, jak má.
Jak vypadá v těch starších Explorerech stín s barvou #00000?

Moc si nedovedu představit, za jakých okolností by se neměl načíst CSS soubor jednoduchým <link> kódem.
Napadá mě spousta možností – špatný MIME typ, nadbytečná mezera na konci (naprosto zbytečného) atributu type, nějaká specifická kombinace s <base href>, podmínka na prohlížeč v PHP atd.
Nic z toho nemohl nikdo z odpovídajících ověřit. Nešlo pouhopouhou logikou uhodnout, že máš chybu v syntaxi. (Což jsi dle mého názoru neměl.)

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