Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Contribuez
Contribuez Proposez vos articles, cours, tutoriels, questions/réponses pour les FAQ, sources et autres ressources pour la rubrique Web ainsi que ses sous-rubriques.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/07/2008, 16h53   #1
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 146
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 146
Points : 45 316
Points : 45 316
Par défaut [SRC][STYLE]Récupérer le style actuel d'un objet !

Pour recupérer le style courant ou par defaut des objets, c'est toujours la galère...

Pour la largeur ou hauteur on peut utiliser offsetWidth ou offsetHeight.

Voici un petit script Pour IE et FFX qui permet de recupérer toute propriété de style des objets, y compris les propriétés par défaut lorsque non définies dans le css ...

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<script type='text/javascript'>
function OffsetStyle(Obj,Prop)
{
    var x = Obj;
    if (x.currentStyle){var y = x.currentStyle[Prop];}
    else if (window.getComputedStyle){    var y = window.getComputedStyle(x,null)[Prop];}
    return y;
}
</script>
<body>
<input type="button" onclick="alert(OffsetStyle(document.body,'fontSize'))" value='size' />
 
</body>
 
</html>
ATTENTION:
IE retourne par defaut les unités en pts pour les fontsize par exmple
FFX retourne des px

si l'on attribue de em :
IE retourne la valeur des EM
FFX convertit en px ...


si l'on mets un background-color red
IE retourne red
FFX rgb(255,0,0)

etc
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2008, 15h36   #2
Expert Confirmé
 
Avatar de FremyCompany
 
Étudiant
Inscription : février 2006
Messages : 2 532
Détails du profil
Informations personnelles :
Âge : 20

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2006
Messages : 2 532
Points : 2 903
Points : 2 903
Envoyer un message via MSN à FremyCompany
De manière générale :
- IE retourne la règle CSS qui l'a emportée sur toutes les autres (currentStyle)
- FireFox retourne la valeur convertie (computedStyle)

Il serait peut-être possible de faire un convertissseur qui transformerait tout selon ce que demande le W3C pour le computedStyle.

Tentative de standardisation (CSS 3) :
http://dev.w3.org/csswg/cssom/#elementcssinlinestyle
__________________
Fremy
Pour vos développements Web et une navigation agréable, le tout gratuit :
1) IE 8 + IE7Pro (Si vous ne connaissez pas IE7Pro, essayez !)
2) FF 3 + Web Developper Toolbar + AdBlockPlus + FireBug + GreaseMonkey
FremyCompany est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2008, 11h52   #3
Expert Confirmé
 
Avatar de FremyCompany
 
Étudiant
Inscription : février 2006
Messages : 2 532
Détails du profil
Informations personnelles :
Âge : 20

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2006
Messages : 2 532
Points : 2 903
Points : 2 903
Envoyer un message via MSN à FremyCompany
Citation:
Envoyé par FremyCompany
Lorsque vous souhaiter connaitre la valeur calculée d'une propriété CSS, vous utilisez window.getComputedStyle(element).propName sous FireFox et co et element.currentStyle.propName sous IE.

Seulement voilà, alors qu'IE retourne les valeurs tels que vous les avez tapées, FireFox les convertit en pixels, ce qui semble demandé pour getComputedStyle par W3C.

J'ai alors créé une nouvelle méthode javascript, getComputedCSSValue, qui mets tout le monde d'accord et transforme les valeurs en em, %, pc, pt, ex, cm, in, mm, ... en pixels sous IE. Il transforme aussi les noms de couleurs en leur valeur réel (red ==> #FF0000).

Ne vous étonnez pas si il y a toujours des différences entre IE et FireFox, j'ai suivi un modèle plus proche de celui d'Opéra, qui semble plus proche des standards sur ce domaine que FireFox.
Code :
1
2
3
4
5
6
<utitilsation du code dans le ZIP>
div { font-size: 10px; }
div > span { font-size: 150%; width: 1em; border: 0.5ex blue solid; }
getComuptedCSSValue(theSpan, "width") ==> "15px"
getComuptedCSSValue(theSpan, "border") ==> "4px solid #0000FF"
...
Fichiers attachés
Type de fichier : zip IE Computed Style.zip (22,7 Ko, 7 affichages)
__________________
Fremy
Pour vos développements Web et une navigation agréable, le tout gratuit :
1) IE 8 + IE7Pro (Si vous ne connaissez pas IE7Pro, essayez !)
2) FF 3 + Web Developper Toolbar + AdBlockPlus + FireBug + GreaseMonkey
FremyCompany est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h23.


 
 
 
 
Partenaires

Hébergement Web