Autor | Zpráva | ||
---|---|---|---|
Petroff Profil |
#1 · Zasláno: 21. 1. 2008, 08:09:34
Chci se zeptat, zda existuje ekvivalent k např. <elem style="property:xxx !important"> pomocí přístupu k DOM prvku elem
(protože elem.style.property="xxx" mi nepřebije hodnotu,kt. je inline important) Zatím jsem to řešil dost neohrabaně pomocí innerHTML a replace/regexp. |
||
peta Profil |
#2 · Zasláno: 21. 1. 2008, 08:20:24
Petroff
a = 5; a = 7; funguje naprosto spravne, v a = 7; jinak to fungovat nesmi. pokud chces neco prirazovat s podminkou, pak tuto podminku musis uvest a to napr pres funkci function zmenstyl(property,important) { if ((elem.style.propertyImportant && important) || !elem.style.propertyImportant) {elem.style.property = "xxx"; elem.style.propertyImportant = important?1:0; } propertyImportant - mnou definovana vlastnost v CSS slouzi important uplne pro jine ucely a nemel by se vubec pouzivat. Predevsim, obvykle neni treba, staci prepisovat pres nadrazeny prvek s id nebo jiny. |
||
Chamurappi Profil |
#3 · Zasláno: 21. 1. 2008, 09:34:22 · Upravil/a: Chamurappi
Reaguji na petu:
Reaguj prosím jen tehdy, když pochopíš dotaz. Petroff hledá způsob, jak nastavit styl s „!important“, nikoliv nějakou svoji definovanou proměnnou. Navíc ta funkce, kterou uvádíš, nedává nesmysl. Pokud něco nastavuješ do elem.style.property, tak se k tomu nepoužívá argument property. Reaguji na Petroffa: Pokud vím, tak to, co řešíš, nejde nijak jednoduše spolehlivě vyřešit. Zkus se zcela vyvarovat upravování stylů skriptem. Měň vždy jen className. |
||
Petroff Profil |
#4 · Zasláno: 21. 1. 2008, 11:01:51 · Upravil/a: Petroff
To Chamurappi:
Díky, myslel jsem si to (že u inline stylů není možné důležitost nastavit - přestože musí být její hodnota někde ve vlastnostech prvku uložená) Mě to funguje s tím innerHTML spolehlivě - použití JS je bez obav (reklam.lištu stejně vygeneruje JS, takže se při vypnutém skriptování nezobrazuje) - a je nutné ( pár pravidel kt. chci změnit je inline !important, ty zbylé dám do CSS s !important - čímž přebiju normální inline styly) |
||
peta Profil |
#5 · Zasláno: 21. 1. 2008, 13:29:37
Chamurappi
A pan chytry. "nejde nijak jednoduše spolehlivě vyřešit" Jenze, to jsem se pokusil take naznacit, vypsanim prikladu. To, co provadi, je normalni prirazeni hodnoty. Je mozne, ze existuje nejaka JS/CSS vlastnost, kde se da nastavit important. To jsem cekal, ze reknes ty. Takze taky te nic nenapada. Ale pridal jsem moznost, jak tuto vlastnost nasimulovat v JS, mozna s drobnou chybnou, ale snad by si poradil. Simulace neni dokonala, pochopitelne CSS important neprebiji. function zmenstyl(property,important) { if ((elem.style.propertyImportant && important) || !elem.style.propertyImportant) {elem.style[property] = "xxx"; elem.style[property+'Important'] = important?1:0;} } Nevim, co ti na tom nedava smysl, kdyz to funguje jako JS expression hover, proste si tam vytvoril nejakou pomocnou promennou. (jeden clovek z forum.builder.cz to ma tusim na webce) Viz: http://www.volny.cz/peter.mlich/www.htm#mssub8 editor 26k Petroff className je vyborny tip, menit to pres ID nadrazeneho objektu taky. Nejlepsi je se takovym divokym kombinacim vyhnout. Important jsem pouzil pouze pri ladeni stylu, kdy jsem si tak overoval, jestli ladim spravny prvek. |
||
Joker Profil |
#6 · Zasláno: 21. 1. 2008, 14:20:04
peta
A pan chytry. Nic proti, ale já u té první odpovědi taky nepochopil, "co tím chtěl básník říci" |
||
Časová prodleva: 16 let
|
0