voilà j'ai defini ma css comme ci dessus
l'attribut colorActif n'existe pas dans les standards
sous IE je peux qd meme y a acceder
j'ai codé cette fonction pour retrouver la css qui m'interesse:
function findStyleRule(styleName) {
var stS=document.styleSheets?document.styleSheets: document.styleSheet; var ok=stS[0].rules?1:0;
for (i = 0; i < stS.length; i++) for (j = 0; j < eval("stS[i]."+(ok?"rules":"cssRules" )+".length" ); j++) if (eval("stS[i]."+(ok?"rules":"cssRules" )+"[j].selectorText" ) == styleName) return eval("stS[i]."+(ok?"rules":"cssRules" )+"[j]" ); }
cette fonction marche sous IE et firefox
soit _field un champ input text
strule=findStyleRule("."+_field.className).style; sous IE je recupère strule.colorActif
mais sous firefox je n'ai rien
j'ai testé strule.cssText
sous IE il me sort tout ce que j'ai enregistré pour le style
sous firefox seulement les attribut du standard
Je cherche donc une solution pour accéder à la valeur d'un attribut d'une css que j'ai défini moi-meme et n'étant donc pas dans les standards
Si vous connaissez une autre manière de definir la couleur d'un element actif c a dire comme pour les liens en css par exemple hover actif .... je suis preneur
Mon but est de changer la couleur du background du champ input qd celui est sélectionné (en gros un curseur) je veux absolument passer par les css (j'ai mes raisons et ça serait trop long à expliquer)
Merci d'avance pour vos réponses
Publicité
Posté le 29-04-2005 à 10:56:09
FlorentG
Unité de Masse
Posté le 29-04-2005 à 10:58:05
pouet:active {
color: #57C0F2;
}
Et tu fait le p'tit script pour le support pour IE. Sur les autres navigateurs, ça fonctionnera d'origine.
en fait ça marche pour les liens mais pas pour les champs ou j'écris mal qque chose ms je sais pas quoi
FlorentG
Unité de Masse
Posté le 29-04-2005 à 11:17:26
En fait après test, je ne crois pas que ce soit possible, il faut malheureusement passer par du JavaScript, en attachant les événements onfocus et onblur...
KangOl
Profil : pointeur
Posté le 29-04-2005 à 11:17:46
non
Code :
<style type="text/css">.pouet:active {
background-color: #57C0F2;
}</style>
<input type="text" class="pouet" name="pouet" />
si tu inclus des css, autant le faire a fond et respecter les standards...
---------------
Nos estans firs di nosse pitite patreye...
FlorentG
Unité de Masse
Posté le 29-04-2005 à 11:18:49
Ah non pardon, faut faire comme ça :
input:focus {
background: #57c0f2;
}
Testé et approuvé sous FireFox, mais IE ne gère évidemment pas
---------------
Nos estans firs di nosse pitite patreye...
cerel
Posté le 29-04-2005 à 11:33:22
Ca fonctionne avec les elements qui ont plusieurs classes ??
Message édité par cerel le 29-04-2005 à 11:33:34
Publicité
Posté le 29-04-2005 à 11:33:22
KangOl
Profil : pointeur
Posté le 29-04-2005 à 11:38:52
j'ai pas testé...
getAttribute renverrai donc un tableau ??
---------------
Nos estans firs di nosse pitite patreye...
KangOl
Profil : pointeur
Posté le 29-04-2005 à 11:43:39
et non, getAttribute renvoi exactement la string du class, donc toutes les classe séparée par des espaces...
ca existe "explode" en javascript ??
---------------
Nos estans firs di nosse pitite patreye...
KangOl
Profil : pointeur
Posté le 29-04-2005 à 12:39:58
allez hop
// leave container arg out, and will default to document. // code from http://www.webmasterworld.com/forum91/1757.htm (unbugged)
// 050429: now also work with multi class elements.
function getElementsByClassName(className,container)
{
container = container||document ; var all = container.all||container.getElementsByTagName('*');
var arr = [] ;
var cla = [] ; var tmp;
var att = (document.all)?"className":"class"; // className for IE & class for Mozilla
---------------
Nos estans firs di nosse pitite patreye...
masklinn
í dag viðrar vel til loftárása
Posté le 29-04-2005 à 14:35:41
document.getElementsByClass = function (needle, tag) {
if(!tag)
tag="*"
var my_array = document.getElementsByTagName(tag);
var retvalue = new Array();
var i;
var j;
for (i = 0, j = 0; i < my_array.length; i++)
{
var c = " " + my_array[i].className + " ";
if (c.indexOf(" " + needle + " " ) != -1)
retvalue[j++] = my_array[i];
}
return retvalue;
}
---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
KangOl
Profil : pointeur
Posté le 29-04-2005 à 14:42:04
j'ai encore bcp a apprendre en optimisation
---------------
Nos estans firs di nosse pitite patreye...
masklinn
í dag viðrar vel til loftárása
Posté le 29-04-2005 à 14:45:40
C'est pas complètement de moi (j'ai juste optimisé pour ajouter un tag optionnel en plus de la classe), ça vient du Glazblog Il y a des versions largement plus avancées, mais non fonctionnelles sous MSIE
---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
gatsusat
Posté le 02-05-2005 à 17:53:13
juste petite information :
la pseudo classe ":hover" ne fonctionne qu'avec l'attribut A sous IE, sous les autres navigateurs (FF, Opera..) ca fonctionne avec presque tout.