Autor Zpráva
Petr_70
Profil
Dobrý den přeji.
Velmi vás prosím o pomoc. Vytvářím svoje první horizontální, 3-úrovňové menu a za nic na světě nemůžu donutit aby mi v PSPadu (a v IE) fungoval nad menu hover efekt, tzn. po přejetí myší se vnořené menu nevysune...
Něco jsem si o problematice přečetl a samozřejmě vím, že to řeší skript csshover.htc, který mám samozřejmě nakopírovaný ve stejném adresáři, jako zdrojový .html. Napadá mne, jestli není třeba ten skript v PSPadu nějak deklarovat, nebo tak...

když dám deklaraci:

body {
      .
      .
      behavior: url(csshover.htc)   
   }


Tak mi při zobrazení přes F10 vrátí "Chyba skriptu aplikace Internet Explorer..."

Stejně tak jsem bez úspěchu vyzkoušel různé deklarace typu:
<!--[if IE]>
	<style type="text/css" media="all">
		body {behavior: url("csshover.htc");}
	</style>
<![endif]-->


Vzhledem k tomu, že čas nad tím ztracený je už na pováženou, velmi vás prosím o pomoc či radu, kde dělám chybu.
Děkuji.
mckay
Profil
Petr_70:
Hoď kód do , aby se obarvil kód, a uvidíš, že během pár chvil bude spousta lidí ochotnější ti poradit :).
Moderátor Mistr: Provedeno.
Bubák
Profil
V tomto případě bude užitečnější odkaz na problémovou stránku, než případné tuny obarveného kódu.
Petr_70
Profil
Pastl jsem tady část zdrojáku, co mi nejde podle popisu výše... Je to ještě takový polotovar neučasaný, tak mne moc nebijte...

Ve Firefoxu mi ten hover na submenu funguje. Byl bych moc rád, kdyby někdo poradil, proč to nejde i v tom PSPadu.

Momochodem: tohle mi tam taky nejde (zkopírováním zdrojáku).

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=windows-1250">
  <meta name="generator" content="PSPad editor, www.pspad.com">;
  <title>Nová Ves 2009</title>
  
    
  
  <style type="text/css">  
  <!--

  form, ul, ol, p, {margin: 0px}
  
  h1 {text-align: center;}
  
  p {  
  margin-left: 10px;
  width: auto; }
  
  
  body {
   margin: 10 0 ; 
   padding: 0;
   background: blue;  /* pozadí "mimo stránku (obsah)" je modré. */
   text-align: center;
   behavior: url(csshover.htc)   
   }

   #stranka {   
   width: 900px;
   background: white;
   margin: 0 auto;
   border-left: 1px solid black;
   border-right: 1px solid black;
   padding: 2em;
   text-align: left; 
   
     
   }      
  
  #menu {
  width:100%;	
  height: 1.68em; 
  background: url('img/oddelovac.gif') no-repeat center left; padding-right:0; padding-top:0; padding-bottom:0;
                 	  
  margin: 20px 0px 5px 0px;    /* odsadi cele menu o 20px shora */  
  padding: 0;	
  padding-left:5px;                      
              
  }
  
  #menu ul {
  list-style-type: none;
  /* width:auto; */	    
  margin: 0;       /* element ul pridava leve margo a to zpusobi odsazeni prvni polozky
                    menu zleva od pozadi (background)*/
  padding: 0;  
  }
  
  #menu li {
  float: left;
  }
  
  #menu li a {   
  display: block;  
  background: #ffffff;      
  padding: 5px 15px 5px 10px;   background: transparent url('img/oddelovac.gif') right center no-repeat;   
  color:#d95900;
  text-align:center;
  text-decoration: none;
  text-transform: uppercase; 
  font: bold;  
  font-size:80%;
  font-family:sans-serif;    
  }
  
  #menu li a:hover {
  background: #d95900;
  color:#fff;
  }
  
  /* První submenu */
  
  #menu li {position: relative;}

  #menu li ul {          /*funguje také konstrukce: #menu ul ul - Viz tutorial.*/ 
  position: absolute; 
  width: 20em; 
  margin: 0; 
  display: none; 
  text-transform: none; 
  border: 1px solid #d95900; 
  font-size: 100%;

  }
  
  
  
  #menu li:hover ul {
  display: block;
  }
  
  </style>
  </head>
  <body>
  
  <div id="stranka">
  
  <div id="menu">
  <ul>
  <li><a href="#Uvodni">Úvodní stránka</a></li>
  <li><a href="#Koncerty">Koncerty</a>
    <ul>
    <li><a href="#Druha Trava">Druhá Tráva v restauraci Archa </a></li>
    <li><a href="#Hradistan">Hradišťan</a></li>
    </ul>
  </li>
  <li><a href="#Nova Ves 2009">Nová Ves 2009</a></li>
  <li><a href="#Praha 2009">Praha 2009</a></li>
  
  </ul> 
  </div>
  
  </div>  
  
  

  </body>
</html>

  </body>
</html>
Petr_70
Profil
Opravdu nikdo neví?
Chamurappi
Profil
Reaguji na Petra_70:
samozřejmě vím, že to řeší skript csshover.htc, který mám samozřejmě nakopírovaný ve stejném adresáři
Existuje řada skriptů emulujících :hover. Nikdo ti neodpovídá, protože nikdo nemá chuť hádat, který používáš zrovna ty. Může v něm být problém, může v něm být nějaká detekce verze nepočítající s tvým stavem…

Opravdu nikdo neví?
Nekonstruktivní zviditelňování dotazu podobným způsobem nebývá odměňováno správnou odpovědí už z principu.
Kdybys dodal odkaz na problematickou stránku, jak doporučoval Bubák, dostal bys přesnou odpověď během několika hodin.

Byl bych moc rád, kdyby někdo poradil, proč to nejde i v tom PSPadu.
Lépe řečeno: i v Exploreru. Editorem nikdo nebrouzdá. Neuvedl jsi verzi Exploreru.

tohle mi tam taky nejde (zkopírováním zdrojáku).
Kopíruješ i hover.htc?
Petr_70
Profil
OK, kritiku beru a omlouvám se. Na svoji obhajobu chci říci jen tolik, že jsem vycházel z předpokladu, že PSPad používá velké množství ne-li většina vývojářů a CTRL+C, CTRL+V výše pastovaného zdrojáku mi přišlo snažší než někde vystavovat neučesanou, kostrbatou verzi snad někdy v budoucnu funkčního webu...

Svůj výtvor, resp. jeho diskutovanou část mám tady
PSPad mi už chybu skriptu nehlásí, nicméně kýžený hover v IE (IE8) stále nechodí. Ve Firefoxu ano.

Věřím, že mi někdo pomůže odhalit problém.
Chamurappi
Profil
Reaguji na Petra_70:
Buď používej standardní režim (měj na prvním řádku <!doctype html>), nebo smaž z csshover.htc tento řádek kontrolující verzi:
if(!/MSIE (5|6)/.test(navigator.userAgent)) return;

V Explorerech 5 a 6 by to fungovalo už teď, kdybys ten HTC skript nepřipojoval špatně:
<style type="text/css" media="screen">
 behavior: url(csshover.htc);
</style>
— ten behavior by se neměl válet jen tak ve stylopisu, musí být na nějakém selektoru (viz všechny příklady s ním).
Petr_70
Profil
Díky moc. Zkusím to...
ra100
Profil *
...ak ti to nefunguje, csshover.htc ti nepomoze....ten v klude odstran a to vysuvacie menu, ktore sa ti po prejdeni mysou nezobrazuje, vyber a s prislusnym tlacitkom, alebo s menu prec, mimo akykolvek <div> <table> adt...
<br />
umiestni to cele hned na zaciatok dokumentu za <body> a prihod tomu z-index: 100; napr...
<br />
nad tlacidlom, z ktoreho sa menu vysuva, nesmie byt ziadny iny prvok v stranke, inac ti hover efekt nebude fungovat.....))))
mckay
Profil
Petr_70:
PSPad používá velké množství ne-li většina vývojářů
No, ani ne, dle mého v PsPadu většina začíná, a končí na tom, co už opravdu funguje. Jestli děláš něco v phpku, tak to při složitějších aplikacích (projektech) poznáš. :)
ra100
Profil *
Petr_70:
aaaaaa este skus na skrite menu pouzit vlastnost css visibility: hidden;
a na hover visibility: visible;
mozno to pomoze...)))
Petr_70
Profil
Chamurappi měl pravdu úplně ve všem a tímto mu velmi děkuji.
V první řadě byla chybu úpně v prvním řádku s <!doctype html> , který mi PSPad "přednastavil" v QUIRK módu. Přiznám se, že chyba byla v mé neznalosti, protože při studiu jsem módy prohlížečů zcela opomenul a teď se mi to zle vymstilo...

Dále byl problém v nefunkčnosti v IE6 (a IE5), což způsobily zapomenuté uvozovky.
S tímhle mi to chodí:
<!--[if lte IE 6]> 
<style type="text/css" media="screen">
body {
behavior: url("csshover.htc");
</style>
 <![endif]-->


Tak ještě jednou děkuji všem hlavně Chamurappimu.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0