Autor | Zpráva | ||
---|---|---|---|
Miloš Profil |
#1 · Zasláno: 28. 12. 2010, 18:08:51
Potřeboval bych pomocí javascriptu docílit změnu CSS.
Obojí vypisuji v <head> daného HTML souboru, protože je samotný a nijak se nevztahuje k jiným HTML. Protože javascriptu příliš nerozumím, zkusil jsem to takto: function jedem(){ document.styleSheets[0].addRule("h2","text-decoration: underline;"); } a v HTML potom onload: <body onload="jedem()"> Jenomže to nefunguje, nadpisy nejsou podtržené. Kde dělám chybu? |
||
panther Profil |
#2 · Zasláno: 28. 12. 2010, 18:14:01
Miloš:
proč neuděláš na danou stránku interní styl s deklarací pro h2? Přijde mi zbytečné do tohoto tahat JS. |
||
Miloš Profil |
#3 · Zasláno: 28. 12. 2010, 18:20:53
Protože H2 pomocí javascriptu skrývají/odkrývají po nich následující blok, a proto na ně má smysl klikat a proto také mají být podtržené.
Pokud ovšem nejede javascript, na H2 nemá smysl klikat, protože v takovém případě nevykonávají žádnou činnost – proto je také chyba, jsou-li podtržené. Pokud je podtrhnu pomocí CSS a nepojede javascript, budou klamat svým nevhodným podtržením. Pokud je podtrhnu javascriptem, budou podtržené pouze v případě, že pojede javascript. |
||
Radek9 Profil |
#4 · Zasláno: 28. 12. 2010, 18:27:25 · Upravil/a: Radek9
Miloš:
A co nějak takhle? <style type="text/css"> h2 { text-decoration: underline; } </style> <noscript> <style type="text/css"> h2 { text-decoration: none; } </style> </noscript> |
||
Miloš Profil |
#5 · Zasláno: 28. 12. 2010, 18:42:59
Radek9:
Hezká idea, ale nefunguje. |
||
joe Profil |
#6 · Zasláno: 28. 12. 2010, 18:47:55
Proč to dělat složitě, když to jde jednoduše?
K tagu body přidej třídu js a do CSS pak dej body.js h2 { text-decoration: underline; } |
||
Miloš Profil |
#7 · Zasláno: 28. 12. 2010, 18:57:25
Když bude mít někdo vypnutý javascript, uvidí <h2> podtržené.
To opravdu nechci. Chci, aby byly <h2> podtržené POUZE v případě, že má návštěvník fungující javascript. |
||
Radek9 Profil |
#8 · Zasláno: 28. 12. 2010, 18:58:49
Miloš:
Přesně to ale joeho řešení splňuje. |
||
joe Profil |
#9 · Zasláno: 28. 12. 2010, 18:59:21
Co to povídáš? Třídu js musíš logicky přidat až pomocí JavaScriptu. Podle toho jsem ji taky nazval.
|
||
Miloš Profil |
#10 · Zasláno: 28. 12. 2010, 19:17:12
Dobrá, ale jak tu třídu pomocí javascriptu přidám?
Jak jsem uvedl, javascriptu rozumím opravdu velmi mizerně. |
||
joe Profil |
#11 · Zasláno: 28. 12. 2010, 19:20:18 · Upravil/a: joe
|
||
Radek9 Profil |
#12 · Zasláno: 28. 12. 2010, 19:21:01
Miloš:
Do onload dej tohle: document.body.className = "js"; |
||
Miloš Profil |
#13 · Zasláno: 28. 12. 2010, 19:30:17
Radek9:
Díky, takhle to funguje. joe: Problém je, když mám hledat se svými mizernými znalostmi angličtiny. Když nevím, jak formulovat otázku, hladá se hodně blbě. |
||
Chamurappi Profil |
#14 · Zasláno: 28. 12. 2010, 22:12:52
Reaguji na joa:
„A hledat umíš? :)“ Odkázaný skript je napsaný docela odpudivě, přestože je to tak jednoduchá akce. Doporučuji obyčejné (jedno jediné) přičtení " js" .
Reaguji na Radka9: Nemusí čekat na onload .
A nemusí třídu nastavovat na <body> , může ji (absolutně kdykoliv) nastavit na <html> (tedy document.documentElement ).
Koukám, že je zamčeno. Moc nerozumím proč… ale budiž, už mlčím. |
||
Časová prodleva: 13 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0