Autor Zpráva
xlifer
Profil
Přes javascript (css display) to jde řešit bez problému. Existuje i přimá možnost jen pomocí CSS? (hover, atd.)

<ul>
<li><a href="#" onclick="zobraz_seznam();">Nabidka polozek:</a></li>
<ul style="display:none" id="seznam">
<li>polozka1</li>
<li>polozka2</li>
<li>polozka3</li>
</ul>
</ul>
Fisir
Profil
Reaguji na xlifera:
Jde to za pomoci záložek a :targetu. Bohužel, pokud je stránka delší, než okno prohlížeče, přeskočí po kliknutí na odkaz přímo k #seznam. Také to asi nejde zase zavřít (bez JavaScriptu). Leda odkázáním na jinou (nebo žádnou) záložku.
Trejpa
Profil
xlifer:
Seznam nemůže přímo obsahovat další seznam, jen položku seznamu – vnořený seznam musí být v položce nadřazeného. Při odkrývání zanořeného seznamu JavaScriptem doporučuji jeho prvotní skrytí vázat na funkčnost JavaScriptu, jinak se uživatelé bez něj ke schovanému obsahu nedostanou.
Tomáš123
Profil
xlifer:
Toto čo máš sa ti nikdy nevysunie. Musíš to upraviť do takejto podoby:
<ul>
<li><a href="#" onclick="zobraz_seznam();">Nabidka polozek:</a>
<ul style="display:none" id="seznam">
<li>polozka1</li>
<li>polozka2</li>
<li>polozka3</li>
</ul>
</li>
</ul>

A v CSS to urobíš asi takto:
li ul {
    display: none;
    position: absolute;
}
li:hover ul {
    display: block;
}
juriad
Profil
Tomáš123:
Tag omission in text/html:

    An li element's end tag may be omitted if the li element is immediately followed by another li element or if there is no more content in the parent element.
Koncová značka li je tedy ve většině případů nepovinná.
xlifer
Profil
Tomáš123:
Toto čo máš sa ti nikdy nevysunie. Musíš to upraviť do takejto podoby:
A proč by neměl? Samozřejmě v ukázce chyběla dodělaná JS funkce na zobraz_seznam(); ale jinak by to normálně fungovalo. Nebo tam je nějaký problém s tím ukončením </li> ?
juriad
Profil
Fisir:
Stav lze uložit i do ckeckboxu: http://kod.djpw.cz/wceb
Funkční to je od IE9. Ve starších to bohužel nefunguje vůbec - nelze se na ten seznam dostat.
Z toho důvodu je lepší zavést umělé zhoršení a selektor změnit třeba na toto. Vynutí IE9 a ve starších bude seznam vidět vždy:
input[type=checkbox]:not(x) + ul {
xlifer
Profil
Raději zůstanu u řešení přes JS, které jsem chtěl původně použít a funguje bez problémů od IE5.5 nahoru i všude jinde (FF,Chrome, atd.). Vidím, že v CSS to má svoje omezení na verze IE. Pravda, CSS je to možná elegantnější, což jsem právě chtěl, ale zase to má svoji daň, jak to tak už bývá...

Tohle mi funguje:
http://kod.djpw.cz/xceb
Trejpa
Profil
xlifer:
Opakuji se: Jak se dostanu k položkám bez zapnutého JavaScriptu?
xlifer
Profil
Trejpa:
Opakuji se: Jak se dostanu k položkám bez zapnutého JavaScriptu?
Tak řešení je asi více, ale lze to řešit přes odkaz třeba, kdy je možné třeba mít položky vypsané ještě i samostatně, záleží na situaci a obsahu a vůbec záměru: http://kod.djpw.cz/yceb
Bubák
Profil
Trejpa:
Jak se dostanu k položkám bez zapnutého JavaScriptu?
Vypnutím CSS :o)
Tomáš123
Profil
xlifer:
Nebo tam je nějaký problém s tím ukončením </li> ?
Presne tak...Juriad mal síce pravdu s nepovinným ukončovaním tagu <li>, ale keď ho už niekto chce ukončiť, tak na správnom mieste.
ÚPRAVA:
Tu je živá ukážka, v ktorej som si uvedomil, že moja veta: „Toto čo máš sa ti nikdy nevysunie.“ nie je pravdivá.
xlifer
Profil
Tomáš123:
Presne tak...Juriad mal síce pravdu s nepovinným ukončovaním tagu <li>, ale keď ho už niekto chce ukončiť, tak na správnom mieste.
Myslel jsem, že použití dalšího UL seznamu je až po ukončené LI položce. Pak mi přijde přehlednějši u seznamu nepoužívat ukončování LI nebo by jste raději doporučili používat ukončování? S hlediska validátoru to projde.

<ul>
<li>polozka1
<ul>
<li>polozka1.1
</ul>
<li>polozka2
<ul>
<li>polozka2.1
<li>polozka2.2
</ul>
</ul>
Trejpa
Profil
xlifer:
Použij to, co ti přijde přehlednější a v čem se vyznáš. Já zbytečné značky vynechávám.
juriad
Profil
xlifer:
Toto bude interpretováno:
<ul>
  <li>polozka1
    <ul>
      <li>polozka1.1</li>
    </ul>
  </li>
  <li>polozka2
    <ul>
      <li>polozka2.1</li>
      <li>polozka2.2</li>
    </ul>
  </li>
</ul>

Tedy ty seznamy budou uvnitř LI. Podle specifikace uvnitř seznamu ul může být pouze LI, SCRIPT a TEMPLATE. Ty dva poslední tam asi nikdy nepoužiješ.
Když si zkusíš ukončit </li> před začátkem <ul>, tak to ve Firefoxu projde, ale není to validní a nevím, zda všechny prohlížeče se k tomu zachovají stejně, nemáš žádnou jistotu. (Projde to ve smyslu, že selektor ul>ul zacílí vnitřní seznam.)
Chamurappi
Profil
Reaguji na juriada:
Když si zkusíš ukončit </li> před začátkem <ul>, tak to ve Firefoxu projde, ale není to validní a nevím, zda všechny prohlížeče se k tomu zachovají stejně
Minimálně starší verze Exploreru v takovém případě přestěhují ukončení tam, kde by mělo být. Jinými slovy je jim totálně jedno, kde </li> je, ignorují ho. (Kdysi to zde někdo řešil, nedaří se mi to vlákno najít.)
xlifer
Profil
Trejpa:
Použij to, co ti přijde přehlednější a v čem se vyznáš. Já zbytečné značky vynechávám.
Souhlas. Nechám na prohlížeči, ať si doplní konce.

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