Autor | Zpráva | ||
---|---|---|---|
joe Profil |
#1 · Zasláno: 9. 10. 2008, 21:42:01
Ahoj,
máte nějaké tipy na to, jak udělat oddělovač v horizontálním menu, kde jsou položky vedle sebe? Přijde mi pak jeden oddělovač vedle aktivní položky navíc, tak jak na to teda? :) Dík |
||
imploder Profil |
#2 · Zasláno: 9. 10. 2008, 22:29:00
1. nějaký nastylovaný tag vložený jako oddělovač na příslušná místa
2. border jako oddělovač (součástí každé položky, tak jak to asi máš teď), krajní položce dát zvláštní třídu, kde oddělovač není |
||
Jimmy Hayek Profil |
#3 · Zasláno: 9. 10. 2008, 22:34:45 · Upravil/a: Jimmy Hayek
joe
Já to dělám tak, že nastavím levý border všem položkám a první z nich ten border zruším... přesněji tedy např.: HTML <menu> <li><a></a></li> <li><a></a></li> <li><a></a></li> <li><a></a></li> <menu> CSS menu li {boder-left: 1px solid black;} menu li:first-child {boder-left: none;} Nefunguje (:first-child) v IE 6... Pokud se ale jedná o statický web, využil bych imploderův návrh, kde nastavíš krajní položce zvláštní třídu. Zkus si prostudovat tohle: http://www.pathf.com/blogs/2008/04/hacking-the-fir/ |
||
imploder Profil |
#4 · Zasláno: 9. 10. 2008, 22:42:22
Jimmy Hayek
„Pokud se ale jedná o statický web, využil bych imploderův návrh, kde nastavíš krajní položce zvláštní třídu.“ To není problém ani u dynamického. Skript může třídu jednoduše doplnit - třeba v cyklu for, kde i je index položky, ve vypisování tagu: if($i==0) echo " class=\"prvni\""; |
||
Chamurappi Profil |
#5 · Zasláno: 9. 10. 2008, 22:52:07
Reaguji na joa:
Položkám dám levý border, posunu je záporným marginem o šířku borderu doleva (což můžu vykompenzovat pravým marginem, je-li potřeba) a jejich rodičovi dám „overflow-x: hidden“. |
||
joe Profil |
#6 · Zasláno: 10. 10. 2008, 12:31:03
Chamurappi
Díky, to mě nenapadlo, tak je to dobrý :-) Jenom by to ale asi nefungovalo u položek s pozadím, protože tam by se to překrývalo - když je oddělovač jako obrázek a ne jako border. Jimmy Hayek Border se mi nelíbí a i při dynamickém nastavuju první položce třídu, pro jistotu ;-) imploder Tak tak, ale kdž označíš aktivní položku, tak buď vlevo nebo vpravo od ní budeš mít ten border... |
||
imploder Profil |
#7 · Zasláno: 10. 10. 2008, 17:43:28
skriptem generované menu se zvýrazněním aktivní položky: http://bprhad.wz.cz/oddelovace/menu.php
|
||
joe Profil |
#8 · Zasláno: 10. 10. 2008, 18:58:23
imploder
Však já vim jak to řešit programově, jenom se mi nelíbil ten oddělovač vedle aktivní položky a už jsem pomalu přemýšlel, že bych přidal třídu i za aktivní položkou pro skrytí. Vždycky jsem pozicoval tu aktivní položku, ale pak bylo vidět jak to poskakuje... Chamurappiho řešení je v mém případě nejlepší, i když ne na všechny případy je vhodné. |
||
imploder Profil |
#9 · Zasláno: 10. 10. 2008, 19:07:54
joe
Nechápu z toho popisu, co myslíš. Že u aktivní položky nemá být oddělovač, protože se ti tam nelíbí? Ve třídě aktivní položky se dá oddělovač odstranit (ale jen na jedné straně - je to ten problém?) i zvýšit ji aby "vyskočila". |
||
joe Profil |
#10 · Zasláno: 10. 10. 2008, 20:27:35
imploder
„Že u aktivní položky nemá být oddělovač, protože se ti tam nelíbí?“ Ano, přesně tento problém ;-) „i zvýšit ji aby "vyskočila"“ Tak tohle zas nechápu já. |
||
imploder Profil |
#11 · Zasláno: 10. 10. 2008, 22:40:34
joe
„„Že u aktivní položky nemá být oddělovač, protože se ti tam nelíbí?“ Ano, přesně tento problém ;-)“ Co brání napsat skript tak, aby položce vedle aktivní border odstranil? „„i zvýšit ji aby "vyskočila"“ Tak tohle zas nechápu já.“ Myslel jsem aby se zvýšila oproti ostatním - jak to bývá v nabídkách typu záložky - vybraná je o kousek vysunutá a ostatní jsou jakoby v pozadí - myslel jsem, že tohle chceš. |
||
joe Profil |
#12 · Zasláno: 11. 10. 2008, 00:06:24
imploder
„Co brání napsat skript tak, aby položce vedle aktivní border odstranil?“ Nic, ale je to celkem dost zbytečné ;-) Aha, myslel jsem si to, ale nic nevysouvám, jen měním pozadí. U aktivních položek, které maj tmavou barvu by to nevadilo, ale mam poměrně zářivé barvy a tak tam ten oddělovač vedle vadil ;-) |
||
Časová prodleva: 16 let
|
0