Autor | Zpráva | ||
---|---|---|---|
xlifer Profil |
#1 · Zasláno: 24. 6. 2014, 20:33:35
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 :target u. 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 |
#3 · Zasláno: 24. 6. 2014, 20:44:14
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 |
#4 · Zasláno: 24. 6. 2014, 20:52:17
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 |
#5 · Zasláno: 24. 6. 2014, 22:22:30
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. |
||
xlifer Profil |
#6 · Zasláno: 24. 6. 2014, 23:06:37
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 |
#7 · Zasláno: 24. 6. 2014, 23:31:44
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 |
#9 · Zasláno: 25. 6. 2014, 00:49:37
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 |
#11 · Zasláno: 25. 6. 2014, 07:02:27
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 |
#14 · Zasláno: 25. 6. 2014, 10:48:50
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 |
#15 · Zasláno: 25. 6. 2014, 10:50:10
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 |
#16 · Zasláno: 25. 6. 2014, 11:13:30
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 |
#17 · Zasláno: 25. 6. 2014, 11:16:40
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. |
||
Časová prodleva: 11 let
|
0