Comment obtenir un élément HTML du style de valeurs en javascript?
Je suis à la recherche d'un moyen de récupérer le style d'un élément qui a un style défini par la balise style.
<style>
#box {width: 100px;}
</style>
Dans le corps
<div id="box"></div>
Je suis à la recherche pour le droit du javascript sans l'utilisation de bibliothèques.
J'ai essayé le suivant, mais continuez à recevoir des blancs:
alert (document.getElementById("box").style.width);
alert (document.getElementById("box").style.getPropertyValue("width"));
J'ai remarqué que je suis le seul à pouvoir utiliser le ci-dessus si j'ai mis le style à l'aide de javascript, mais incapable de avec les balises de style.
- Connexes: stackoverflow.com/questions/2531737/...
Vous devez vous connecter pour publier un commentaire.
La élément
.style
propriété vous permet de savoir uniquement les propriétés CSS qui ont été définis comme inline dans cet élément (par programmation, ou défini dans l'attribut style de l'élément), vous devriez obtenir la calculée style.N'est pas si facile de le faire en une manière de croix-navigateur, c'est à dire à sa façon, par le biais de la
element.currentStyle
de la propriété, et le DOM Niveau 2 standard façon, mis en œuvre par d'autres navigateurs est par le biais de ladocument.defaultView.getComputedStyle
méthode.Les deux façons de différences, par exemple, l'IE élément
.currentStyle
bien s'attendre à ce que vous accédez à la SCC noms de propriété composée de deux mots ou plus dans camelCase (par exemplemaxHeight
,fontSize
,backgroundColor
, etc), le standard s'attend à ce que les propriétés avec les mots séparés par des tirets (par exemplemax-height
,font-size
,background-color
, etc).Aussi, l'IE
element.currentStyle
retournera toutes les tailles dans l'unité qu'ils ont été spécifiés (par exemple, 12pt, 50%, 5em), le standard va calculer la taille réelle en pixels toujours.J'ai fait il y a quelques temps un cross-browser fonction qui vous permet d'obtenir le calcul des styles dans une manière de croix-navigateur:
La fonction ci-dessus n'est pas parfait, pour certains cas, par exemple pour les couleurs, la méthode standard sera de retour couleurs dans le rgb(...) notation, sur IE ils seront de retour comme ils ont été définis.
Je suis actuellement en train de travailler sur un article dans le sujet, vous pouvez suivre les modifications que je fais sur cette fonction ici.
document.defaultView
estwindow
. Ainsi, au lieu dedocument.defaultView.getComputedStyle
vous pouvez utiliser directementgetComputedStyle
.Je crois que vous êtes maintenant en mesure d'utiliser la Fenêtre.getComputedStyle()
Documentation MDN
Exemple, pour obtenir la largeur d'un élément:
Dans jQuery, vous pouvez le faire
alert($("#theid").css("width"))
.-- si vous n'avez pas pris un coup d'oeil à jQuery, je vous le recommande fortement; elle fait beaucoup de javascript simple des tâches sans effort.
Mise à jour
pour l'enregistrement, ce post est de 5 ans. Le web a développé, déplacés, etc. Il y a des façons de le faire avec un bon Vieux Javascript, ce qui est mieux.
Par l'aide .css() jquery dans le style de la balise peut être consulté et modifié
par exemple:
Vous pouvez faire fonctionner
getStyles
que vais prendre un élément et d'autres arguments sont des propriétés que les valeurs que vous voulez.Maintenant, vous pouvez utiliser cette fonction comme ceci:
OU