Autor | Zpráva | ||
---|---|---|---|
vydrus Profil |
#1 · Zasláno: 28. 9. 2008, 00:00:49 · Upravil/a: vydrus
Volám velkého, moudrého Chamurappiho!
Mám problém. Má stránka je nevalidní. Jak to spravit? Zkoušel jsem všechno možné, a nic. Díky... ///edit - již neaktuální, stránka proběhla množstvím změn - teď mi jde jen o ten JS, který jsem popsal dole |
||
Venca V Profil |
#2 · Zasláno: 28. 9. 2008, 00:12:59 · Upravil/a: Venca V
Stačí se trochu zamyslet a nemusíš volat nikoho, odpověď ti nabízí validátor na tebou uvedeném odkazu:
Konsorcium si myslí, že je element <noscript> blokový (což v praxi neplatí) a validátoru se tudíž nelíbí, že jej dáváte do řádkového. Místo <small> si odpovídajícím způsobem nastyluj <div>. edit: překlep |
||
Miloš Profil |
#3 · Zasláno: 28. 9. 2008, 00:19:25
Jestliže se spokojíš s malým hloupým Milošem, pak:
<noscript> je blok a jako takový nemá co dělat v řádkovém <small>. Krom toho ti (jsme v HTML) blokový <noscript> uzavře předchozí <p class="postmetadata alt">, v čehož důsledku tam ukončovací </p> nemá co ukončovat. Řešení je na bíle dni: <p class="postmetadata alt"><small>Tento článek byl vložen… nebo <script type="text/javascript">obsah = '<a target="_blank"… </script></small> </p> <noscript> sledovat další články pomocí <a href="http://vydrus.ic.cz/?feed=rss">RSS</a>.</noscript> Případně můžeš poslední řádek doplnit takhle: <noscript><p>sledovat další články pomocí <a href="http://vydrus.ic.cz/?feed=rss">RSS</a>.</p></noscript> |
||
Miloš Profil |
#4 · Zasláno: 28. 9. 2008, 00:20:18
Venca V
Nepředbíhej, jóóóóó! |
||
vydrus Profil |
#5 · Zasláno: 28. 9. 2008, 00:33:13 · Upravil/a: vydrus
Miloš
Jenže, je tu menší problém. Já to potřebuji na stejném řádku, takže <p> za noscriptem nepřichází v úvahu. Teď jsem to tam nějak zaonačil (validní), ale zas to blbne s tim řádkem. |
||
Miloš Profil |
#6 · Zasláno: 28. 9. 2008, 00:38:37
vydrus
<p> za noscriptem nepřichází v úvahu Vždyť tam ten <p> být vůbec nemusí (viz první příklad) |
||
vydrus Profil |
#7 · Zasláno: 28. 9. 2008, 00:43:45 · Upravil/a: vydrus
Miloš
Možná. Jenže, co když si vypnu JS? Tak to poskočí o řádek níž... |
||
habendorf Profil |
#8 · Zasláno: 28. 9. 2008, 00:46:58
vydrus
Ono se to takhle především vůbec nedělá. Ten způsob zápisu skriptu jsi asi odkoukal z PHP, ale JS je něco krapet jiného. |
||
vydrus Profil |
#9 · Zasláno: 28. 9. 2008, 00:51:35
habendorf
Fajn. Prostě chci udělat to, že při zaplym JS se zobrazí odkaz na topčlánky.cz (ono to jinak ani nejde), a když bude vypnutý, tak se objeví informace o odběru RSS (což jsi asi pochopil, předpokládám). Jak to tedy udělat, aby se to chovalo normálně (tedy tak, jak chci), a bylo to validní? |
||
habendorf Profil |
#10 · Zasláno: 28. 9. 2008, 01:12:48
Možností je mraky, např. dopsat inline styl pomocí document.write. To se mi ale zrovna dvakrát nelíbí, osobně bych to udělal nějak takhle:
<style> #aaa a, #aaa.js_on span {display:none;} #aaa.js_on a {display:inline;} </style> <p id="aaa"> Zde je <a href="#">link</a> <span> info o RSS </span>. </p> <script> document.getElementById('aaa').className="js_on"; </script> |
||
vydrus Profil |
#11 · Zasláno: 28. 9. 2008, 01:37:25
habendorf
Hm. To mi nejde. V případě vypnutého JS se jednoduše nezobrazí žádný odkaz. |
||
habendorf Profil |
#12 · Zasláno: 28. 9. 2008, 01:48:22
„V případě vypnutého JS se jednoduše nezobrazí žádný odkaz.“
V případě vypnutého JS se snad má dle tebe zobrazit „informace o odběru RSS“ a ne odkaz. Navíc toto je princip, ne řešení servírované na zlatém talíři. Tu jednu třídu pro odkaz si tam snad zvládneš napsat sám, ne? Jo a prosím, rádo se stalo. |
||
vydrus Profil |
#13 · Zasláno: 28. 9. 2008, 01:53:12
habendorf
No, zkusím se tím prokousat... ale JS opravdu není můj kamarád :) |
||
habendorf Profil |
#14 · Zasláno: 28. 9. 2008, 01:56:29
Přidáš třídu odkazu a adekvátně upravíš css, s JS to nemá nic společného.
|
||
vydrus Profil |
#15 · Zasláno: 28. 9. 2008, 02:15:15 · Upravil/a: vydrus
Já se do toho úplně zamotal, je už na mě pozdě. Experimentoval jsem s tím document.getElementById('aaa').className="js_on"; a spanem, a pořád nic.
Zkusil jsem něco vymyslet, ale nevím, jak to udělat. Když bude JS zaplý, tak chci, aby se nezobrazil ten span (s RSS) - zobrazí se jen možnost zahlasování (páč je to napsaný v JavaScriptu). Můžeš mi pomoct? Asi na to sám fakt nepřijdu... <p class="postmetadata alt"><small>Tento článek byl vložen k datu 22.9 2008 do kategorie Internet. Pokud se vám líbil, můžete k němu <a href="#respond">napsat názor</a>, nebo <script type="text/javascript"> obsah = 'pro něj <a target="_blank" href="http://www.topclanky.cz/pridat-odkaz/?kde=' + encodeURIComponent(document.URL) + '&nadpis=' + encodeURIComponent(document.title) + '">zahlasovat<\/a>.'; document.writeln(obsah); </script>. <span *****> sledovat další články pomocí <a href="http://vydrus.ic.cz/?feed=rss">RSS</a>.</span></small></p> ***** - tenhle span se nezobrazí, pokud bude fungovat JS. Naopak Pokud JS bude vyplý, zobrazí se. |
||
Chamurappi Profil |
#16 · Zasláno: 28. 9. 2008, 05:51:03
Reaguji na vydruse:
1) Připiš si do HTML kódu někam třídu „js_on“ a nastyluj s jejím využitím vše tak, jak chceš, aby to vypadalo se zapnutým JavaScriptem. 2) Pak tu třídu „js_on“ smaž a nastyluj vše tak, jak chceš, aby to vypadalo s vypnutým JavaScriptem. 3) Pak teprve přidej ten habendorfův JavaScript, který při načítání stránky nastaví třídu „js_on“. Není v tom žádná velká věda a už jsi teď silně nakopnutý správným směrem. |
||
vydrus Profil |
#17 · Zasláno: 28. 9. 2008, 09:18:44 · Upravil/a: vydrus
Ták, nějak jsem to tam do toho zamontoval, už se to chová, tak, jak chci. Validní to sice není, ale to si později upravím.
Ale... Při vypnutém JS se celý text "Tento článek byl vložen k datu [...blabla...]." zobrazuje normálně. Když JS zapnu, tak se text zvětší (myslím, že to má nějakou spojitost s tím small a těma všema Javascriptama, ale vůbec nevím, jak to dát do kupy, aby se to chovalo normálně...). |
||
Časová prodleva: 16 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0