Je me demande juste - comment utiliser jQuery - je peux obtenir un remplissage total des éléments et une marge, etc.? c'est-à-dire 30px 30px 30px 30px ou 30px 5px 15px 30px etc.
j'ai essayé
var margT = jQuery('img').css('margin');
var bordT = jQuery('img').css('border');
var paddT = jQuery('img').css('padding');
Mais ça ne marche pas? http://jsfiddle.net/q7Mra/
Réponses:
Selon la documentation jQuery , les propriétés CSS abrégées ne sont pas prises en charge.
En fonction de ce que vous entendez par «remplissage total», vous pourrez peut-être faire quelque chose comme ceci:
la source
auto
ou2%
ouinherit
?$( elem ).css([ "borderTopWidth", "borderRightWidth", "borderBottomWidth", "borderLeftWidth" ]).
Consultez la documentation de l'API jQuery pour plus d'informations sur chacun:
Voici le jsFiddle édité montrant le résultat.
Vous pouvez effectuer le même type d'opérations sur la hauteur pour obtenir sa marge, sa bordure et son remplissage.
la source
margin-left
etmargin-right
, et peuvent êtreem
oupx
.height
pas auwidth
?jQuery.css()
renvoie les tailles en pixels, même si le CSS lui-même les spécifie en em, ou en pourcentage, ou autre. Il ajoute les unités ('px'), mais vous pouvez néanmoins les utiliserparseInt()
pour les convertir en entiers (ouparseFloat()
, pour les cas où les fractions de pixels ont un sens).http://jsfiddle.net/BXnXJ/
la source
Cela fonctionne pour moi:
Exemple de résultat:
Pour faire un total:
la source
Frontière
Je pense que vous pouvez obtenir la largeur de la bordure en utilisant
.css('border-left-width')
. Vous pouvez également récupérer le haut, la droite et le bas et les comparer pour trouver la valeur maximale. La clé ici est que vous devez spécifier un côté spécifique.Rembourrage
Voir jQuery calculer padding-top comme un entier en px
Marge
Utilisez la même logique que la bordure ou le remplissage.
Vous pouvez également utiliser externalWidth . Le pseudo-code devrait être
margin = (outerWidth(true) - outerWidth(false)) / 2
. Notez que cela ne fonctionne que pour trouver la marge horizontalement. Pour trouver la marge verticalement, vous devez utiliser externalHeight .la source
J'ai un extrait de code qui montre comment obtenir les espacements des éléments avec jQuery:
la source
Si l'élément que vous analysez n'a pas de marge, de bordure ou quoi que ce soit défini, vous ne pourrez pas le retourner. Au sommet, vous pourrez obtenir «auto» qui est normalement la valeur par défaut.
De votre exemple, je peux voir que vous avez
margT
comme variable. Je ne sais pas si vous essayez d'obtenir une marge supérieure. Si tel est le cas, vous devriez utiliser.css('margin-top')
.Vous essayez également d'obtenir la stylisation à partir de 'img' qui se traduira (si vous en avez plusieurs) dans un tableau.
Ce que vous devez faire est d'utiliser la
.each()
méthode jquery.Par exemple:
la source
revenir:
obtenir de la valeur:
Éditer:
utiliser le plugin jquery: jquery.sizes.js
la source