Autor | Zpráva | ||
---|---|---|---|
abcdef Profil * |
#1 · Zasláno: 12. 9. 2012, 11:48:25
Ahoj lidi. mám problém s operou. Potřebuju totiž si java scriptem napřed určit šířku monitoru a udělat výpočet, to dělám takhle :
sirka = screen.width color = screen.colorDepth onetable = ((sirka / 2) - 40) a pak potřebuju tu proměnnou "onetable" načíst jako css styl sem : document.write('.scroll{') document.write("width: " + onetable + "px;") document.write('overflow-y: auto;') document.write('}') tohle co jsem zapsal mi funguje všude jenom v opeře ne. podotýkám že to není funkcí overflow, protože když to zapíšu bez té proměnné jako takhle : document.write('.scroll{') document.write("width: 920px;") document.write('overflow-y: auto;') document.write('}') tak to funguje i v té opeře a já už nevim co s tim. zkoušel jsem to přetypovat na strint na int... různě s tim manipulovat... nic. Nemá někdo prosím nějaké řešení? Děkuji |
||
_es Profil |
#2 · Zasláno: 12. 9. 2012, 11:59:12
abcdef:
„Potřebuju totiž si java scriptem napřed určit šířku monitoru a udělat výpočet“ Na čo to potrebuješ? Nepotrebuješ len správne napísať CSS hodnoty (bez JS)? Metódu document.write tam máš na čo?
|
||
abcdef Profil * |
#3 · Zasláno: 12. 9. 2012, 12:04:03 · Upravil/a: abcdef
Potřebuju protože ten problém související s tímhle, řešim už asi týden všemi způsoby jaké mě už napadly. Jde o to že mám dvě tabulky vedle sebe a předem nevim jak hodnoty v nich obsažené budou dlouhé a chci aby na každém rozlišení to vypadalo stejně, nicméně to se mi nedaří absolutně zařídit... čili teď mám nápad že udělám pro každou tabulku rolovátko a šířku každé z nich napřed vypočítám pomocí js. (nemyslim si že bys mi chtěl správně napísať celé css) document.write tam mám proto aby to ten java script odeslal do prohlížeče v nějaké formě... js na začátku stránky napíše část css... takhle :
document.write('<style type="text/css">') document.write('#pageBound{') document.write('float:left;') document.write('position:relative;') document.write('left: 50%;') document.write('}') document.write('#page{') document.write('float:left;') document.write('position:relative;') document.write('right: 50%;') document.write('}') document.write('.scroll{') document.write("width: " + onetable + "px;") document.write('overflow-y: auto;') document.write('}') document.write('.myTable{') document.write('border-collapse: collapse;') document.write('}') document.write('.myTable td{') document.write('border: 1px solid black;') document.write('padding: 10px 5px;') document.write('}') document.write('</style>') Už nevim co s tim fakt :o/ |
||
_es Profil |
abcdef:
„chci aby na každém rozlišení to vypadalo stejně“ Prečo? Čo ak bude rozlíšenie veľmi malé? Ako potom návštevník to malé písmo prečíta? Alebo, čo ak bude JS vypnutý/nefunkčný? „šířku každé z nich napřed vypočítám pomocí js“ Na čo? Snáď sa to dá nejako vhodne definovať aj bez JS. „aby to ten java script odeslal do prohlížeče v nějaké formě“ No ale ak to predsa len chceš použiť, tak musíš do document.write odoslať naraz celý element <style> , nie hentaké neúplné kúsky kódu - to môže byť príčina tej nekompatibility.
|
||
abcdef Profil * |
#5 · Zasláno: 12. 9. 2012, 12:14:49 · Upravil/a: abcdef
_es:
odoslať naraz celý element <style> a prosimtě jak?? já fakt už nevim. V podstatě je mi jedno jak se to vyřeší, ale pokud do "width: " + onetable + "px;" dostanu tu proměnnou tak aby jí přečetla i opera mám celej problém vyřešenej |
||
_es Profil |
#6 · Zasláno: 12. 9. 2012, 12:17:33
abcdef:
„a prosimtě jak??“ Normálne: document.write("<style>CSS kód</style>"); |
||
abcdef Profil * |
#7 · Zasláno: 12. 9. 2012, 12:18:45 · Upravil/a: abcdef
No jo, ale jak tam mám dostat celej ten odstavec???
<style type='text/css'> #pageBound{ float:left; position:relative; left: 50%; } #page{ float:left; position:relative; right: 50%; } .scroll{ width: 150px; overflow-y: auto; } .myTable{ border-collapse: collapse; } .myTable td{ border: 1px solid black; padding: 10px 50px; } </style> _es: Na čo? Snáď sa to dá nejako vhodne definovať aj bez JS. Nevím jak. Jak? |
||
_es Profil |
abcdef:
„jak tam mám dostat celej ten odstavec???“ No však ho normálne poskladáš do výsledného textového reťazca. Operátor + na textové reťazce použiť vieš, tak nerozumiem, v čom je ešte problém.
„Nevím jak. Jak?“ Neviem čo. Skús ten tvoj problém nejako rozumne zrozumiteľne formulovať, možno ti niekto poradí. Relatívne pozicovanie tam máš prečo? |
||
abcdef Profil * |
#9 · Zasláno: 12. 9. 2012, 12:27:33 · Upravil/a: abcdef
_es:
Prečo? Čo ak bude rozlíšenie veľmi malé? Ako potom návštevník to malé písmo prečíta? Alebo, čo ak bude JS vypnutý/nefunkčný? KDyž bude mít velice malé... tak bude mít velice dlouhé rolovátko. Přečte protože když má malé rozlišení tak má veliké písmo. JS nemůže mít vypnutý.. na té stránce je ajax a podobně... js se tam využívá hojně. Pokud ho bude mít vypnutý nebude moc stránku používat. _es: No však ho normálne poskladáš do výsledného textového reťazca. Nedělám to náhodou tímhle?? document.write('<style type="text/css">') document.write('#pageBound{') document.write('float:left;') document.write('position:relative;') document.write('left: 50%;') document.write('}') document.write('#page{') document.write('float:left;') document.write('position:relative;') document.write('right: 50%;') document.write('}') document.write('.scroll{') document.write("width: " + onetable + "px;") document.write('overflow-y: auto;') document.write('}') document.write('.myTable{') document.write('border-collapse: collapse;') document.write('}') document.write('.myTable td{') document.write('border: 1px solid black;') document.write('padding: 10px 5px;') document.write('}') document.write('</style>') |
||
_es Profil |
#10 · Zasláno: 12. 9. 2012, 12:31:42
abcdef:
„Nedělám to náhodou tímhle??“ Nie, čítaj rady pozorne, metódu document.write použiješ len raz.
|
||
abcdef Profil * |
#11 · Zasláno: 12. 9. 2012, 12:33:52
len raz jo?? ... tak mmnt zkusim to nějak.. sice nevim jak přesně ale evidentně to mám asi uhodnout
|
||
panther Profil |
#12 · Zasláno: 12. 9. 2012, 12:35:30
abcdef:
„js se tam využívá hojně. Pokud ho bude mít vypnutý nebude moc stránku používat.“ tak to je fajn... :) JS pouzivat muzes, mel bys vsak dbat na dusledne nahrazeni JS funkci NoJS alternativou. Ale, jak myslis, je to tvuj web :) |
||
abcdef Profil * |
#13 · Zasláno: 12. 9. 2012, 12:38:23 · Upravil/a: abcdef
panther:
nevim jak to udělat jinak? Nevim jak jinak určit šířku monitoru uživatele a pak udělat výpočet. Kdybys mi to řek byl bych ti vděčný. _es: Neuhodl jsem. Nevím jak se to dělá abych ho použil jen raz. Jak se to dělá? panther: ...bez použítí js. |
||
peta Profil |
<script> var t = "\ <style type='text/css'>\ #pageBound{\ float:left;\ position:relative;\ left: 50%;\ }\ #page{\ float:left;\ position:relative;\ right: 50%;\ }\ .scroll{\ width: 150px;\ overflow-y: auto;\ }\ .myTable{\ border-collapse: collapse;\ }\ .myTable td{\ border: 1px solid black;\ padding: 10px 50px;\ }\ </style>\ "; alert(t); document.write(t); </script> <link href="./style.css" type="text/css" rel="stylesheet"/> <style>@import url(./style.css);</style> // nebo Jinak ti radili, ze to mas spojit v jednu velkou nudli a ne odradkovavat. Nebo spojit pluskama var aaa = "aaa"+ "bbb"+ "ccc"; alert (aaa); |
||
_es Profil |
#15 · Zasláno: 12. 9. 2012, 12:45:05
abcdef:
„Nevím jak se to dělá abych ho použil jen raz. Jak se to dělá?“ Viď [#6], trochu podrobnejšie: document.write("<style>Výsledný CSS kód poskladaný pomocou operátora + (reťazec1 + reťazec2), či inými vhodnými metódami pre textové reťazce v JS.</style>");
|
||
panther Profil |
#16 · Zasláno: 12. 9. 2012, 12:45:29
abcdef:
sirku monitoru znat nemusis, stejne pak s tou hodnotou nikde nepocitas. 50% je v CSS stejnych jako v JS. |
||
abcdef Profil * |
#17 · Zasláno: 12. 9. 2012, 13:00:26 · Upravil/a: abcdef
peta:
Jasný.. udělal jsem to tedy takhle : var t = "\ <style type='text/css'>\ #pageBound{\ float:left;\ position:relative;\ left: 50%;\ }\ #page{\ float:left;\ position:relative;\ right: 50%;\ }\ .scroll{\ width: " + onetable + "px;\ overflow-y: auto;\ }\ .myTable{\ border-collapse: collapse;\ }\ .myTable td{\ border: 1px solid black;\ padding: 10px 50px;\ }\ </style>\ "; document.write(t); ano?? ... jenomže to má stejnej problém.. funguje to všude, ale v opeře ne. panther: počítám tohle v js: sirka = screen.width onetable = ((sirka / 2) - 40) a to potřebuju znát to číslo. |
||
margin Profil * |
#18 · Zasláno: 12. 9. 2012, 13:03:08
S CSS se nepracuje tak, že lamácky zmastíš jakási document.wrire, existující standardní techniky, pro začátek koukni na Dynamické HTML
Zajímat se o rozlišení monitoru je nesmysl http://latrine.dgx.cz/cas-optimalizovat-pro-zdravy-rozum Pokud ti to funguje všude, kromě Opery, dej odkaz na živou ukázku a nějaké standardní řešení se určitě najde. |
||
_es Profil |
abcdef:
Skús dať tie lomítka a konce riadkov z textových reťazcov preč. Asi si nedomyslel to, že v prehliadači môžu byť aj nejaké bočné panely. |
||
abcdef Profil * |
#20 · Zasláno: 12. 9. 2012, 13:13:11 · Upravil/a: abcdef
margin:
tak jo... vygeneruju nějakou živou ukázku. protože.... tohle jinak nevyřešim. _es: bez lomítek to nefunguje vůbec. |
||
panther Profil |
#21 · Zasláno: 12. 9. 2012, 13:15:56
abcdef:
jeste jedna vec: dopocitas si nejake cislo, fajn. Uzivatel si potom zmensi/zvetsi okno prohlizece. Takto se s CSS opravdu nepracuje, doporucil bych studium jeho moznosti a ty pak vyuzil. |
||
abcdef Profil * |
#22 · Zasláno: 12. 9. 2012, 13:27:37
panther:
Tak prostě se mu ty dvě tabulky seskupěj pod sebe.. to už je mi jedno. Když bude zvěčovat jako šílenej jakejkoliv web tak se rozpadne. Já jsem zkoušel to css nastavit.. nastavuju tuhle blbost tejden už. A vyzkoušel jsem nespočet možností a měl jsem nespočet nápadů. Všechno selhalo. Nevim jak mít vedle sebe dvě tabulky s hodnotama o kterých předem nevím jak budou dlouhé jinak než že udělám pod každou rolovátko. A netušim jak určit velikosti obou tabulek jinak než posle monitoru uživatele. Udělám živou ukázku jenom s tim tady mám komplikace, protože je to velký celý moc. |
||
panther Profil |
#23 · Zasláno: 12. 9. 2012, 13:30:36
abcdef:
„Když bude zvěčovat jako šílenej jakejkoliv web tak se rozpadne“ opravdu? :) „A netušim jak určit velikosti obou tabulek jinak než posle monitoru uživatele.“ potrebujes dve tabulky vedle sebe a mezi nimi nejakou mezeru... Proc musi byt ta mezera pevne dana (v px), a nepouzijes na sirku tabulky procenta a mezi nimi procentualni margin? Je to standardni reseni, prijde mi zbytecne vymyslet kolem toho podobne opicarny, ktere v dusledku stejne budou fungovat hure nez reseni skrz ciste CSS. |
||
abcdef Profil * |
#24 · Zasláno: 12. 9. 2012, 13:39:19
Jneže s tou živou ukázkou je problém... protože když to uložim jako index, tak to v té opeře jde.
|
||
margin Profil * |
#25 · Zasláno: 12. 9. 2012, 13:45:35
abcdef:
„s tou živou ukázkou je problém... protože když to uložim jako index, tak to v té opeře jde“ To je úplně jedno, radu, jak jezdit na mrtvém koni, nedostaneš. Poradíme ti nějaké standardní řešení. |
||
abcdef Profil * |
#26 · Zasláno: 12. 9. 2012, 13:51:07 · Upravil/a: abcdef
panther:
dobře dobře dobře.... dám na tebe a zkusím se tedy vydat tvojí cestou.. sice mám tedy pocit že už jsem tohle musel zkoušet, ale zdáš se býti zkušenějším takže na tebe dám. Čili položim otázku... Mám dvě <teble> jejich obsah čtu z db a normálně vypisuju jo??.... a teď... jak mám tedy napsat ty ID pro ty dva divy do kterejch ty tabulky uzavřu tak aby to to bylo bez problémů? ...vedle sebe |
||
panther Profil |
#27 · Zasláno: 12. 9. 2012, 13:56:01
abcdef:
jestli to jsou tabulky, staci ti tabulky, divy kolem nich nepotrebujes. Obe budou mit float: left a sirku, prvni z pravy margin (nebo druha levy, je to jedno). Kdyz vsechny rozmery budou v procentech (sirka + sirka + margin = 100%), nemusis vymyslet zadne zhovadilosti tvorene javascriptem.
|
||
abcdef Profil * |
#28 · Zasláno: 12. 9. 2012, 14:14:58
panther
jako že tohle : <table style="float:left margin:100%"> u jedný a tohle <table style="float:left> tohle u druhý? |
||
panther Profil |
abcdef:
ne. Tohle je prilis jednoducha otazka, abys na ni nemohl zkusmo prijit za par okamziku sam. Staci si uvedomit/precist/pochopit, co margin dela. No, mozna postaci si poradne precist a idealne pochopit to, co jsem napsal v [#27]. |
||
_es Profil |
#30 · Zasláno: 12. 9. 2012, 14:20:43
|
||
Téma pokračuje na další straně.
|
0