Autor | Zpráva | ||
---|---|---|---|
Nadan Profil |
#1 · Zasláno: 2. 6. 2011, 08:26:26
Chtěl bych vědět, jestli se dá nahradit ID něčím jiným. Např. mám stránku http://narody.ic.cz/index.php?a=22
a při najetí na obrázek se mi zobrazí text. Jak zajistit, abych mohl mít na stránce více obrázků, když je ID unikátní? PS: Nechce se mi v CSS definovat styl pro každý obrázek zvlášť. |
||
okolojdouci Profil * |
#2 · Zasláno: 2. 6. 2011, 10:15:20
Každý prvek může mít jednak ID, které musí být unikátní, jednak třídu (nebo dokonce více tříd), ta unikátní být nemusí. Pro některý účel se hodí jedno, pro jiný účel to druhé.
|
||
Nadan Profil |
#3 · Zasláno: 2. 6. 2011, 17:12:53
okolojdouci:
No dobře, ale když volám Javascript funkci, tak mi nereaguje na class, jen na ID. A když chci více těchto možností spuštění funkce Javascriptu na jedné stránce, nemůžu je volat IDčkem, když je unikátní a může být jen jednou na jedné stránce, ne? |
||
_es Profil |
#4 · Zasláno: 2. 6. 2011, 17:19:22 · Upravil/a: _es
Nadan:
„No dobře, ale když volám Javascript funkci, tak mi nereaguje na class, jen na ID.“ Tak si napíš JS funkciu reagujúcu na niečo iné ako na atribút id. Bráni ti v tom niekto? Okrem toho, potrebuješ vôbec na daný účel JS? |
||
Nadan Profil |
#5 · Zasláno: 2. 6. 2011, 17:22:25
_es:
A může JS funkce reagovat na class/name? „Okrem toho, potrebuješ vôbec na daný účel JS?“ No, jak jinak? JS mi přišel jako nejschůdnější varianta... |
||
_es Profil |
#6 · Zasláno: 2. 6. 2011, 17:27:18
Nadan:
„A může JS funkce reagovat na class/name?“ Aká funkcia? Aký účel? Čo konkrétne sa pokúšaš riešiť? |
||
Nadan Profil |
#7 · Zasláno: 2. 6. 2011, 17:28:56
_es:
Onmouseover, onmouseout změna stylu jiného elementu. |
||
_es Profil |
#8 · Zasláno: 2. 6. 2011, 17:36:54
Nadan:
„Onmouseover, onmouseout změna stylu jiného elementu.“ No ale „iný element“ môžeš špecifikovať rôznym spôsobom, teda skús zrozumiteľne a dostatočne popísať, o čo sa vlastne pokúšaš. |
||
Nadan Profil |
#9 · Zasláno: 2. 6. 2011, 17:38:25
_es:
Mám dva divy. Div 2 je vnořený v divu 1. Při najetí na div 1 se mi zobrazí div 2 (změna stylu u divu 2 -> z display:none na display:block). |
||
_es Profil |
#10 · Zasláno: 2. 6. 2011, 18:05:47
Nadan:
„Div 2 je vnořený v divu 1. Při najetí na div 1...“ No a ešte v akom inom vzťahu je ten div2 voči div 1 ?
Môžeš napríklad použiť v ovládači udalosti div 1 nejaký spôsob odkazu na div 2. |
||
Nadan Profil |
#11 · Zasláno: 2. 6. 2011, 18:24:51
Sakra práce, já jsem vůl... Jsem zjistil, že se to dá napsat o hodně jednodušeji, bez takových šílených blbostí, co se tam snažím narvat. Nicméně díky za pomoc :-)
|
||
Witiko Profil |
#12 · Zasláno: 2. 6. 2011, 18:46:47
Nadan:
>> „Už se nesnažte, udělal jsem si to sám. Neřeknu jak. Sbohem. Pro jistotu zamykám.“ |
||
Nadan Profil |
#13 · Zasláno: 2. 6. 2011, 19:14:01
Witiko:
Já jsem neuzamčel téma. Vrhnul jsem se na kód a snažil se ho napsat dobře a myslel jsem, že to půjde jednodušeji. Správný kód bych poslal, ale nějak se mi nepovedl. Nevím jak na to, žádná varianta nejde... _es: „No a ešte v akom inom vzťahu je ten div2 voči div 1?“ Žádném. „Môžeš napríklad použiť v ovládači udalosti div 1 nejaký spôsob odkazu na div 2.“ No, potřebuji při najetí na div1 zobrazit div 2. Přes ID to nejde, protože kdybych měl na té stránce více skupinek div1 a div2, tak při najetí na jeden div1 se mi zobrazí div2 na celé stránce. Takže zpět k problému: nevím co s tím... |
||
Nadan Profil |
#14 · Zasláno: 2. 6. 2011, 19:26:19 · Upravil/a: Nadan
Předpokládejme, že mám kód:
HTML: <div class="img" style="background-image: url('http://edward-vyznavac.navajo.cz/edward-vyznavac.jpg'); width: 218px; height: 250px;" onmouseover="text.style.display='block'" onmouseout="text.style.display='none'"> <div id="text"> <span class="nadpis">Eduard Vyznavač</span><br/> Zdroj: <a href="http://navajo.cz">Navajo.cz</a> </div> </div> CSS: .img { float: right; margin: 10px; padding-top: 20px; background-repeat: no-repeat; } #text { font: bold 12px "Trebuchet MS"; float: right; background: #000011; display: none; text-align: right; padding: 5px; } .nadpis { font-size: 20px; } a chci, abych nemusel mít styl k divu text psaný přes ID. EDIT: Drobné úpravy |
||
_es Profil |
#15 · Zasláno: 2. 6. 2011, 20:42:09
Nadan:
> „No a ešte v akom inom vzťahu je ten div2 voči div 1?“ > Žádném. No a ako chceš potom identifikovať ten div2 , ak je je v tom div1 vnorených tých div ov trebárs 1 000?
|
||
Nadan Profil |
#16 · Zasláno: 2. 6. 2011, 21:26:47
_es:
Ehm, cože? div2 má id=text a div1 má class=img. Mrkni se na ten kód, co jsem poslal. |
||
_es Profil |
#17 · Zasláno: 2. 6. 2011, 21:47:36
Nadan:
„div2 má id=text“ No a čo ti teda bráni použiť metódu document.getElementById ?
Asi je problém, že chceš použiť jedno id viac krát na stránke, čo samozrejme nejde. Predpokladám, že odpoveď „Žádném.“ na otázku „No a ešte v akom inom vzťahu je ten div2 voči div 1?“ nie je pravdivá, alebo sa dá kód upraviť tak, aby pravdivá nebola, a ak ten vzťah napíšeš, tak bude aj jednoduchá odpoveď.
|
||
Nadan Profil |
#18 · Zasláno: 2. 6. 2011, 21:55:18
_es:
„Asi je problém, že chceš použiť jedno id viac krát na stránke, čo samozrejme nejde. Predpokladám, že odpoveď ‚Žádném.‘ na otázku ‚No a ešte v akom inom vzťahu je ten div2 voči div 1?‘ nie je pravdivá, alebo sa dá kód upraviť tak, aby pravdivá nebola, a ak ten vzťah napíšeš, tak bude aj jednoduchá odpoveď.“ Pořád nechápu, co se tím snažíš říct. Div 1 a 2 mají společné jen to, že div 2 je vnořený do divu 1. V žádném jiném vztahu nejsou... „No a čo ti teda bráni použiť metódu document.getElementById?“ Nikdy jsem s ním nepracoval, nevím jak ho použít. |
||
_es Profil |
#19 · Zasláno: 2. 6. 2011, 22:35:09
Nadan:
„Nikdy jsem s ním nepracoval, nevím jak ho použít.“ V JS nájde element s daným id . To predsa treba či nie? No dané id by malo byť v dokumente len jedno.
„Pořád nechápu, co se tím snažíš říct. Div 1 a 2 mají společné jen to, že div 2 je vnořený do divu 1. V žádném jiném vztahu nejsou...“ Nie je to prvý vnorený div do div1 - napríklad?
|
||
Joker Profil |
#20 · Zasláno: 3. 6. 2011, 08:02:36 · Upravil/a: Joker
Nadan:
„Nikdy jsem s ním nepracoval, nevím jak ho použít.“ Neboli „Jsem líný“? Jenže jak jsem pochopil, problém je právě v tom, že přes ID to tak snadné nebude, jelikož těch obrázků musí být víc. Další problém: > „No a ešte v akom inom vzťahu je ten div2 voči div 1?“ > Žádném. Spíš to znamená „Nevím v jakém by měly být“. Ale už jsme se alespoň dobrali zadání: Je <div> který má onmouseover-onmouseout a má zobrazovat/skrývat jiný <div>, který je uvnitř Možností je více, například: Id musí být unikátní, tak dát hlavnímu <div>u nějaké Id, třeba "img123" a tomu vnitřnímu odvozené, třeba "img123_text". Pak by to bylo nějak: document.getElementById(id + "_text") Další možnost je dát tomu vnitřnímu <div>u nějakou třídu a použít getElementsByClassName (pro některé prohlížeče nutno doprogramovat, na webu se příkladů válí spousta). Mimochodem: <span class="nadpis">Egyptské pyramidy v Gize</span><br/> |
||
_es Profil |
#21 · Zasláno: 3. 6. 2011, 09:37:43
Joker:
> Mimochodem: > <span class="nadpis">Egyptské pyramidy v Gize</span><br/> > Fuj. A čo ešte: <div class="img" style="background-image: url(
Na obrázky je značka <img> .
Nadan: V ovládači udalosti sa na prvý vnorený element odkážeš cez výraz this.firstChild a na posledný vnorený cez this.lastChild . No musíš po <div> a pred </div> odstrániť zalomenia riadka.
|
||
Joker Profil |
#22 · Zasláno: 3. 6. 2011, 10:00:58
_es:
Jinak ta stránka má připojený framework Prototype, takže to getElementsByClassName by se nemuselo až tak řešit: <div onmouseover="$(this).select('.text').show()" onmouseout="$(this).select('.text').hide()"> <div class="text">Skrývací text</div> </div> (Poznámka, jestli to takhle nefunguje, tak se omlouvám, s Prototype nemám moc zkušeností) |
||
Nadan Profil |
#23 · Zasláno: 3. 6. 2011, 12:33:28
Joker:
> „Nikdy jsem s ním nepracoval, nevím jak ho použít.“ > Neboli „Jsem líný“? Ne. Znamená to, že tomu nerozumím a neumím s tím, tak vás prosím o radu, protože jinde na internetu jsem nenašel lepší pomoc. > <span class="nadpis">Egyptské pyramidy v Gize</span><br/> > Fuj. Na nadpisy je <h1>-<h6> a nebude ani nutné z inline prvku dělat „blokový“ přes odřádkování. To je jen dočasné řešení, nechtěl jsem tam psát h4, musel bych ho zase kódovat zpět, kdyby to nešlo. _es: > A čo ešte: <div class="img" style="background-image: url( > Na obrázky je značka <img>. Ale ty jsi v tom případě vůbec nepochopil o co mi jde. Kdybych tam měl <img> a ne obrázek na pozadí <div>u, tak tam nemůžu vložit text přes obrázek! Joker: „A mělo by to být.“ Ok, díky, zkusím. |
||
Nadan Profil |
#24 · Zasláno: 3. 6. 2011, 12:54:55
Joker:
Tak ne, nejde to. Už mě nenapadá, co s tím dál, ani na internetu nemůžu najít schůdné řešení. Vykašlu se asi na to a budu psát za každý obrázek na stránce nové ID do CSSka... |
||
_es Profil |
#25 · Zasláno: 3. 6. 2011, 13:03:23
Nadan:
„Tak ne, nejde to.“ Nejde čo? Nepokúšaš sa stále používať duplicitné id , alebo áno?
|
||
Nadan Profil |
#26 · Zasláno: 3. 6. 2011, 13:05:31
_es:
Hele, ty vůbec nevíš o co se tady snažím, že? |
||
Chamurappi Profil |
#27 · Zasláno: 3. 6. 2011, 13:09:13 · Upravil/a: Chamurappi
Reaguji na Nadana:
Není sám. Pokud chceš nějak měnit stav <div> u, přes který přijíždí kurzor, stačí ti primitivní změna třídy:
<div onmouseover="this.className = 'zobrazit';" onmouseout="this.className = 'schovat';"> zobrazit , při odjetí schovat . Co tyto třídy způsobí, to už si zařiď v CSS.
|
||
Nadan Profil |
#28 · Zasláno: 3. 6. 2011, 13:13:32
Chamurappi:
Díky moc, přesně to jsem potřeboval! :-) Díky moc!!! |
||
_es Profil |
#29 · Zasláno: 3. 6. 2011, 13:14:22
Chamurappi:
„this.element.className“ Tomu nerozumiem. Čo je tá vlastnosť element ?
|
||
Chamurappi Profil |
#30 · Zasláno: 3. 6. 2011, 13:43:42 · Upravil/a: Chamurappi
Reaguji na _es:
Pardon. Dneska píšu všude blbosti :-) Opraveno. Nadanovi doporučuji neděkovat předčasně. |
||
Téma pokračuje na další straně.
|
0