2005
11.23

javascript css

régebben csináltam olyan hogy menuitem overre a style.color-t cseréltem.
nyilván csak akkor amikor szükség volt az over eseményre, tehát nem csak a css hovert akartam jsbe rakni. tehát pl almenü megnyitására volt szükség etc.
ilyenkor ugye ilyesmiről van szó :

htmlben

javascriptben:
over=function(m){
m.style.color="red"
}

etc.

felmerült az igény hogy eleve a betöltött css-t változtassam meg javascriptből, ne csak a node stylet ami alapból felveszi azt.

feladat: stylesheet tömböl kivenni a változtatandó rule-t majd azt csesztetni.

megoldás:
a változtatandó css megkeresése a style title alapján:
for(var c=0;c<document.styleSheets.length;c++){
if(document.styleSheets[c].title=="ys"){
css=document.styleSheets[c]
break
}
}

na ha ez megvan akkor jön a gebasz hogy a ruleokat másként érem el ie és mozilla alatt:
rules=css.rules?css.rules:css.cssRules?css.cssRules:undefined

ie : rules
ff : cssRules
ez van

na ha ez megvan akkor már bátran csesztethetjük a csst mint eddig. pl :
rules[0].style.color="#039"

az hogy melyik rule kell nekünk azt a rules[c].selectorText megmondja tehát hogy adott rule bodyra vagy divre vagy mire vonatkozik. sajnos nem asszociatív a tömb tehát kénytelenek vagyunk for ciklusban kikeresni a számunkra szükséges rule indexét.

ennyi, egészségünkre.

No Comment.

Add Your Comment