jQuery .css retourne la propriété css en pixels, quand elle est réellement en pourcentages
Je vais essayer d'obtenir la valeur de la left
de propriété (en%) à l'aide de la .css
méthode jQuery:
var my_value= $("div").css("left");
Problème est, le ci-dessus retourne dans pixles...
Aucune idée sur comment je pourrais obtenir le retour de la réelle valeur de la propriété (qui est en pourcentages)?
source d'informationauteur
Vous devez vous connecter pour publier un commentaire.
Si vous faites une demande
left
en ligne, vous pouvez y accéder directement à partir destyle.left
par exemple:Pour moi, sur Firefox, IE et Opera, qui renvoie le pourcentage de la valeur là où
css
retourne le nombre de pixels. (Sur Chrome, j'ai un pourcentage de toute façon.)Si vous faites une demande
left
via une feuille de style, je ne crois pas qu'il y a tout pratique façon à obtenir l'information que vous cherchez. Vous peut l'obtenir, mais c'est vraiment gênant: En regardant à travers tous le style défini des règles, à comprendre ceux qui s'appliquent à l'élément, et de l'analyse du texte de règle. Vous pouvez accéder aux feuilles de style viadocument.styleSheets
qui est un tableau de toutes les feuilles de style pour le document. Chaque feuille de style sera un ensemble de règles qu'il définit sont disponibles soitcssRules
ourules
(selon le navigateur). Chaque règle a unecssText
propriété qui vous donne le texte de la règle.Pas facile d'obtenir toutes les règles CSS de la spécificité et de droit, mais possible, et pas particulièrement difficile pour les cas les plus simples.
Pour le style en ligne des trucs, voici une démo en live - Dans la démo, j'ai un positionnement absolu
div
avecleft
définie par un inline style ettop
défini par une feuille de style (donc pas inline).À L'Aide De Google Chrome 16:
À L'Aide De Firefox 10:
À l'aide de IE9:
La raison
style.top
est toujours vide, c'est questyle
ne reflète inline styles, mais je l'ai inclus pour l'intégralité.Juste eu ce problème et a réussi à obtenir de cette façon:
retourné me
'100%'
cependant
$('#mySelector').css('width');
retourné me
'900px'
Espère que cela aide quelqu'un
Mise à jour: dans IE 11, style.gauche ne fonctionne plus. Si vous tentez d'accéder de style en ligne, utilisez le prop() la fonction, puis spécifiez l'attribut spécifique que vous cherchez comme une clé du tableau:
sera de retour à votre
Je ne pense pas qu'il est possible d'obtenir la largeur retourné comme un pourcentage, comme le navigateur ne les mathématiques à l'interne, puis seulement vous permet d'accéder à la px valeur.
Vous pouvez toutefois, le pourcentage une fois que vous savez la largeur de l'élément, et la largeur de la contenant de l'élément, comme ceci: