Autor Zpráva
marad
Profil
Zdravím všechny,
chci poprosit o radu. Již dlouho ladím základ webu pro jednu skupinu http://specialniurceni.cz/web/ v chromu jede vše perfektně jak má.
Firefox: Nefunguje jezdící menu + stránka dole dělá odsazení
IE: Stránka dole dělá odsazení, kolem odkazů pod menu dělá rámečky
+ Se mi zdá, že firefox i IE dělá trošku jiné písmo než chrome.

Snažím se to už dlouho sladit a pořád to nějakej nefunguje. Počítám s tím, že třeba vyladění pro IE nebude dokonalé, ale na firefoxu mi docela záleží.

Předem díky za rady!

Edit: Ještě jsem teď zkoušel operu a ta funguje stejně spolehlivě jako chrome
marad
Profil
Respektive především netušíte někdo proč nefunguje to menu ve firefoxu???
peta
Profil
Vsem radim, at stranku vyladi pro FF, pro ostatni prohlizece se to nejak vyresi. Na Operu ani Chrome se neda spolehnout uz dlouha leta. Navic, ja tu mam jen FF a IE, takze, pokud to v techto dvou nejede, tak nevim ,ajk to ma spravne fungovat.

"Nefunguje jezdící menu" - co je jezdici menu a jak ma fungovat? Ve FF24 ani v IE8 to nic nedela.
window.onscroll = function () {menu.className = (document.documentElement.scrollTop + document.body.scrollTop  > text.offsetTop && document.documentElement.clientHeight > menu.offsetHeight) ? "menu fixed" : "menu";}
Zkousel jsi googlem hledat crossbrowser reseni? Kazdy prohlizec ma vlastni js kod. Tento bude fungovat jen v prohlizecich, ktere znaji documentElement scrollTop offsetTop clientHeight offsetHeight.

"stránka dole dělá odsazení " - co je stranka dela odsazeni, ktery z tech bloku (divu, ramecku) oznacujes ty jako stranka a vuci cemu se odsazuje ze ktere strany? Treba, kdyz ja porovnam IE8 a FF24, tak skutecne pod copyright ve FF je ukonceny ten svetlezluty blok, vypada to na klasicke chovani marginu. Tohle myslis?
.pata {padding:5px;}
.pata p {margin:0px;}

"firefox i IE dělá trošku jiné písmo než chrome."
Ano.

Napr. tam mas v html kodu desne chyby. Mozna i neukonceny jeden div. Validator je sikovna vecicka.
<img src="14.jpg"; width="681px"; height="511px";>

V IE8 se mi menu zobrazi vpravo a ne vlevo jako ve FF.
marad
Profil
Díky, jak bych to řekl jsem takovej samouk a stránky dělám jen podle tohoto webu. Takže se omlouvám, že nejsem schopen se přesně odborně vyjádřit.
Menu má fungovat tak, že když stránku naroluji do určité pozice menu roluje také.

Stránka dělá odsazení - ano vypadá to na chování marginu, nechápu ale proč to dělá když je margin 0px

Jsem hodně velký začáteční, takže ty chyby v kódu prostě nevidím :/ co je na rozměrech toho obrázku špatně?

V IE8 je vpravo? tak to jsem už z toho vážně naprášky :D
----

Nějaká rada kde začít a jak to optimalizovat?

EDIT: mě to menu funguje jak má v IE10
marad
Profil
-------
Nebo takto:

drobnosti už nějak vyřeším. Potřebuji nasměrovat jak ten skript co roluje s menu zprovoznit ve firefoxu a v IE8 to je pro mě teď primární.

Díky za jakoukoliv pomoc!
peta
Profil
Oprava, mam IE9 (visty). Ze fuguje v IE10 je cool, ale ie10 funguje az od win7 :)

Js - sem ti rikal, ze mas googlovat crossbrowser slovo a k tomu to, co hledas, fixed object javascript
http://peter-mlich.wz.cz/web/js/prjpw/fixed-object.html
Ale ten priklad jsem psal pro sebe, tak nevim, zda dela presne to, co chces. Je to upraveny priklad z jakpsatweb (ty priklady jako zacatecnik mas jiste projite a urcite by ses na takovou hloupost neptal :) ). Pripadne je toho plne forum podobnych dotazu, staci hledat
google = site:diskuse.jakpsatweb.cz nepohyblivy objekt
google = site:diskuse.jakpsatweb.cz zafixovany objekt
Příklad objektu zafixovaného na stránce
Chamurappi
Profil
Reaguji na peta:
Vsem radim, at stranku vyladi pro FF, pro ostatni prohlizece se to nejak vyresi.
To je stejně blbá rada, jako když upřednostní kterýkoliv z ostatních prohlížečů. Opravování hotové stránky je obtížnější, než průběžné řešení chyb.

Zkousel jsi googlem hledat crossbrowser reseni? Kazdy prohlizec ma vlastni js kod.
Cože? V kterém prohlížeči je potřeba jiný kód?


Reaguji na marada:
Máš to celé nakódované poněkud nešikovně. Proč zadáváš blokům s obsahem pevnou výšku? Zbytečně pozicuješ víc věcí, než musíš.
Až se zbavíš nedostatků, zkus se inspirovat řešením v článku Jak vytvořit fixovaný banner?
Rady od peta doporučuji ignorovat.
marad
Profil
Chamurappi:
Jak bych to mohl upravit? Resp, které bloky a jak?

Peta:
fixed pro mě není řešením, potřebuji aby menu fungovalo tak, že až naroluji stránku do určité pozice tak bude mít terpve fixní pozici a až se opět vrátí do toho body když už nemá mít tak mělo opět svou běžnou pozici. Takže fixedem to řešit nemůžu.
peta
Profil
marad:
A ten muj js kod ti to menu ve vsech tvych prohlizecich neposunuje? tak si ho jen upravis na podminky, jake potrebujes, ne?

Chamurappi:
Vsiml sis ty rozdily mezi jeho kodem a mym? Jeden kod plati pro Explorer, druhy pro Netscape, treti pro Mozillu. On tam ma jenom 2 moznosti. Nebo vetu, ze pro kazdy prohlizec plati jiny kod chapes jinak?
document.documentElement.scrollTop
document.body.scrollTop
---
window.scrollY
document.documentElement.scrollTop 
document.body.scrollTop
Mimochodem, priklad na jpw neobsahuje js kod pro ruzne prohlizece, on tam pro mozilu vnucuje css fixed. Coz je klamani, protoze css neni javascript.
Chamurappi
Profil
Reaguji na peta:
Vsiml sis ty rozdily mezi jeho kodem a mym?
Ne. Na tvé kódy zásadně nekoukám, protože bych k nim měl spoustu připomínek a ty bys je stejně neposlouchal, je zbytečné ztrácet s tebou čas.

On tam ma jenom 2 moznosti.
Ta třetí je zbytečná, pokud nepotřebuje podporovat Netscape Navigator 4. Pokud by ho potřeboval podporovat, tak má stejně smůlu, protože nepodporuje position: fixed.
Dneska už všechny normální prohlížeče včetně Exploreru 6 vrátí stav narolování ve vlastnosti document.documentElement.scrollTop (akorát pár Androidů roluje ve výchozím stavu s <body>, takže stačí přičíst document.body.scrollTop).

Coz je klamani, protoze css neni javascript.
Nějak jsem nepochopil, proč by měl používat JS i tam, kde nemusí.


Reaguji na marada:
Jak bych to mohl upravit? Resp, které bloky a jak?
Nepozicuj, plav. Bližší radu ti bohužel nedám, jsem zde hlavně proto, abych tě ochránil před zdejším broukem Pytlíkem.

Zkus tu svoji funkci upravit takhle:
window.onscroll = function ()
{
  menu.className = (text.getBoudingClientRect().top > 0 && document.documentElement.clientHeight > menu.offsetHeight) ? "menu fixed" : "menu";
}
(Netestoval jsem to.)
marad
Profil
S tou úpravou už to nefunguje nikde. Pozicování a takový věci dořeším potom, teď je pro mě primární ten skript zprovoznit pro FF a to se stále nedaří :/
peta
Profil
Chamurappi: Rikej si co chces, ale tva odpoved neprinesla reseni. Ja mam aspon link na js, ktery dela skoro to, co chce. Na otazku, jestli mu funguje v jeho prohlizecich ale nereaguje, nejspis kvuli tvym reakcim na mou osobu :) Ten kod staci jen upravit.
marad
Profil
Peta: Plně tomu totiž nerozumím pořád ten článek pročítám a srovnávám. Problém u mě je, že programování nerozumím takže to zkouším různě než to funguje a většinou to vychází :D, teď se mi to, ale nedaří.
Nějaký konkrétní doporučení, kde v tom skriptu co upravit?


Pokud myslíš, tento příklad http://peter-mlich.wz.cz/web/js/prjpw/fixed-object.html , ano ten funguje.
Ale já to potřebuji cituji článek: Co ale v případě, že má element mít nejprve nějakou normální posici? Přijde na řadu JavaScript, který v momentě, kdy daný prvek začne mizet, přepne posici na fixovanou.
http://jecas.cz/sidebar
Chamurappi
Profil
Reaguji na marada:
S tou úpravou už to nefunguje nikde.
Udělal jsem překlep, ta funkce se správně jmenuje getBoundingClient.

Druhá část podmínky selhává ve Firefoxu, kde je document.documentElement.clientHeight rovno 0. Možná by pomohlo změnit režim. Nebo nastavit body { height: 100% }.


Reaguji na peta:
Ja mam aspon link na js, ktery dela skoro to, co chce.
V Exploreru 10 mi tvůj skript nefunguje.
Mimochodem, už jsi byl mnohokrát varován, že nemáš kritizovat cizí příspěvky, protože rozmělňuješ debatu.

Vaše odpověď

Mohlo by se hodit

Nezapomeňte na odkaz na živou ukázku problému.

Prosím používejte diakritiku a interpunkci.

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

0