Ich frage mich nur, wie ich mit jQuery ein Element erhalten kann, das mit Gesamtauffüllung, Rand usw. formatiert ist. dh 30px 30px 30px 30px oder 30px 5px 15px 30px usw.
Ich habe es versucht
var margT = jQuery('img').css('margin');
var bordT = jQuery('img').css('border');
var paddT = jQuery('img').css('padding');
Aber das funktioniert nicht? http://jsfiddle.net/q7Mra/
Antworten:
Gemäß der jQuery-Dokumentation werden Kurzform-CSS-Eigenschaften nicht unterstützt.
Je nachdem, was Sie unter "Total Padding" verstehen, können Sie möglicherweise Folgendes tun:
quelle
auto
oder2%
oder istinherit
?$( elem ).css([ "borderTopWidth", "borderRightWidth", "borderBottomWidth", "borderLeftWidth" ]).
Überprüfen Sie die jQuery-API-Dokumente auf Informationen zu den folgenden Themen:
Hier ist die bearbeitete jsFiddle, die das Ergebnis zeigt.
Sie können dieselbe Art von Operationen für die Höhe ausführen, um den Rand, den Rand und den Abstand zu erhalten.
quelle
margin-left
undmargin-right
unterschiedlich sein können undem
oder sein könnenpx
.height
nicht verbundenwidth
?jQuery.css()
Gibt Größen in Pixel zurück, auch wenn das CSS sie selbst in em angibt, oder als Prozentsatz oder was auch immer. Es werden die Einheiten ('px') angehängt, aber Sie können sie trotzdem verwendenparseInt()
, um sie in ganze Zahlen (oderparseFloat()
wenn Bruchteile von Pixeln sinnvoll sind).http://jsfiddle.net/BXnXJ/
quelle
Das funktioniert bei mir:
Ergebnisbeispiel:
Um insgesamt zu machen:
quelle
Rand
Ich glaube, Sie können die Randbreite mit erhalten
.css('border-left-width')
. Sie können auch oben, rechts und unten abrufen und vergleichen, um den Maximalwert zu ermitteln. Der Schlüssel hier ist, dass Sie eine bestimmte Seite angeben müssen.Polsterung
Siehe jQuery Berechnen von Padding-Top als Ganzzahl in px
Spanne
Verwenden Sie dieselbe Logik wie Rand oder Abstand.
Alternativ können Sie OuterWidth verwenden . Der Pseudocode sollte sein
margin = (outerWidth(true) - outerWidth(false)) / 2
. Beachten Sie, dass dies nur zum horizontalen Ermitteln des Randes funktioniert. Um den Rand vertikal zu finden, müssten Sie OuterHeight verwenden .quelle
Ich habe einen Ausschnitt, der zeigt, wie man mit jQuery die Abstände von Elementen ermittelt:
quelle
Wenn das zu analysierende Element keinen Rand, Rand oder was auch immer definiert hat, können Sie es nicht zurückgeben. Oben können Sie "Auto" erhalten, was normalerweise die Standardeinstellung ist.
An Ihrem Beispiel kann ich sehen, dass Sie
margT
als Variable haben. Ich bin mir nicht sicher, ob ich versuche, den oberen Rand zu erreichen. Wenn dies der Fall ist, sollten Sie verwenden.css('margin-top')
.Sie versuchen auch, die Stilisierung von 'img' zu erhalten, was (wenn Sie mehr als eine haben) zu einem Array führt.
Was Sie tun sollten, ist die
.each()
jquery-Methode zu verwenden.Beispielsweise:
quelle
Rückkehr:
Wert erhalten:
Bearbeiten:
Verwenden Sie das jquery-Plugin: jquery.sizes.js
quelle