Disons que la règle est la suivante:
.largeField {
width: 65%;
}
Existe-t-il un moyen de récupérer «65%» d'une manière ou d'une autre, et non la valeur de pixel?
Merci.
EDIT: Malheureusement, l'utilisation des méthodes DOM n'est pas fiable dans mon cas, car j'ai une feuille de style qui importe d'autres feuilles de style, et par conséquent, le paramètre cssRules se termine par null ou non défini valeur .
Cette approche, cependant, fonctionnerait dans la plupart des cas simples (une feuille de style, plusieurs déclarations de feuille de style distinctes à l'intérieur de la balise head du document).
Réponses:
Il n'y a pas de moyen intégré, j'en ai peur. Vous pouvez faire quelque chose comme ceci:
la source
class="largeField"
à la plage, actuellement vous sélectionnez un ensemble vide.Le moyen le plus simple
la source
style="width:65%"
).C'est très certainement possible!
Vous devez d'abord masquer () l'élément parent. Cela empêchera JavaScript de calculer les pixels de l'élément enfant.
Voyez mon exemple .
Maintenant ... je me demande si je suis le premier à découvrir ce hack :)
Mettre à jour:
Bon mot
Il laissera un élément caché avant la
</body>
balise, ce que vous voudrez peut-être.remove()
.Voir un exemple de one-liner .
Je suis ouvert à de meilleures idées!
la source
Vous pouvez accéder à l'
document.styleSheets
objet:la source
styleSheets[0]
).for (var i=0; rules.length; i++)
fonctionnerait-il? Ne devrait-il pas êtrefor (var i=0; i<rules.length; i++)
En retard, mais pour les utilisateurs plus récents, essayez ceci si le style css contient un pourcentage :
la source
Un plugin jQuery basé sur la réponse Adams:
Renvoie «65%». Ne renvoie que des nombres arrondis pour mieux fonctionner si vous aimez if (width == '65%'). Si vous aviez utilisé directement la réponse d'Adams, cela n'avait pas fonctionné (j'ai obtenu quelque chose comme 64,93288590604027). :)
la source
S'appuyant sur l'excellente et surprenante solution de timofey, voici une implémentation purement Javascript:
J'espère que c'est utile à quelqu'un.
la source
{
en fin de première ligne.J'ai un problème similaire dans Obtenir les valeurs de la feuille de style globale dans jQuery , j'ai finalement trouvé la même solution que ci-dessus .
Je voulais juste croiser les deux questions afin que d'autres puissent bénéficier des résultats ultérieurs.
la source
Vous pouvez mettre les styles auxquels vous avez besoin d'accéder avec jQuery soit dans:
Ensuite, il devrait être possible (mais pas nécessairement facile) d'écrire une fonction js pour analyser tout ce qui se trouve dans les balises de style dans l'en-tête du document et renvoyer la valeur dont vous avez besoin.
la source
Vous pouvez utiliser la fonction css (largeur) pour renvoyer la largeur actuelle de l'élément.
c'est à dire.
Voir aussi: http://api.jquery.com/width/ http://api.jquery.com/css/
la source
Il n'y a rien dans jQuery, et rien de simple même en javascript. En prenant la réponse de timofey et en courant avec elle, j'ai créé cette fonction qui fonctionne pour obtenir toutes les propriétés que vous voulez:
la source
Conversion de pixels en pourcentage en utilisant la multiplication croisée .
Configuration de la formule:
1.) (element_width_pixels / parent_width_pixels) = (element_width_pixels / 100)
2.) element_width_percentage = (100 * element_width_pixels) / parent_width_pixels
Le code actuel:
la source