Zastanawiam się tylko - jak używając jQuery - mogę uzyskać sformatowane elementy, całkowite wypełnienie i marginesy itp. tj. 30px 30px 30px 30px lub 30px 5px 15px 30px itp
próbowałem
var margT = jQuery('img').css('margin');
var bordT = jQuery('img').css('border');
var paddT = jQuery('img').css('padding');
Ale to nie działa? http://jsfiddle.net/q7Mra/
Odpowiedzi:
Zgodnie z dokumentacją jQuery , skrócone właściwości CSS nie są obsługiwane.
W zależności od tego, co rozumiesz przez „całkowite wypełnienie”, możesz zrobić coś takiego:
źródło
auto
albo2%
alboinherit
?$( elem ).css([ "borderTopWidth", "borderRightWidth", "borderBottomWidth", "borderLeftWidth" ]).
Sprawdź dokumentację jQuery API, aby uzyskać informacje na temat każdego z nich:
Oto edytowany plik jsFiddle pokazujący wynik.
Możesz wykonać te same operacje dla wysokości, aby uzyskać jej margines, obramowanie i wypełnienie.
źródło
margin-left
imargin-right
i mogą byćem
lubpx
.height
niewidth
?jQuery.css()
zwraca rozmiary w pikselach, nawet jeśli sam CSS określa je w em, jako procent lub cokolwiek. Dołącza jednostki („px”), ale mimo to możesz użyć ichparseInt()
do konwersji na liczby całkowite (lubparseFloat()
, jeśli ułamki pikseli mają sens).http://jsfiddle.net/BXnXJ/
źródło
To działa dla mnie:
Przykład wyniku:
Aby uzyskać sumę:
źródło
Granica
Wierzę, że możesz uzyskać szerokość obramowania za pomocą
.css('border-left-width')
. Możesz także pobrać górną, prawą i dolną część i porównać je, aby znaleźć wartość maksymalną. Kluczowe jest tutaj to, że musisz określić konkretną stronę.Wyściółka
Zobacz jQuery obliczyć padding-top jako liczbę całkowitą w px
Margines
Użyj tej samej logiki co obramowanie lub dopełnienie.
Alternatywnie możesz użyć externalWidth . Powinien to być pseudokod
margin = (outerWidth(true) - outerWidth(false)) / 2
. Zwróć uwagę, że działa to tylko w przypadku wyszukiwania marginesu w poziomie. Aby znaleźć margines w pionie, musisz użyć externalHeight .źródło
Mam fragment, który pokazuje, jak uzyskać odstępy między elementami za pomocą jQuery:
źródło
Jeśli analizowany element nie ma marginesu, obramowania lub czegokolwiek zdefiniowanego, nie będziesz w stanie go zwrócić. Na górze będziesz mógł uzyskać `` auto '', które zwykle jest domyślne.
Z twojego przykładu widzę, że masz
margT
zmienną. Nie jestem pewien, czy próbujesz uzyskać szczyt marginesu. W takim przypadku powinieneś użyć.css('margin-top')
.Próbujesz również uzyskać stylizację z 'img', co spowoduje (jeśli masz więcej niż jedną) w tablicy.
Powinieneś użyć
.each()
metody jquery.Na przykład:
źródło
powrót:
uzyskać wartość:
Edytować:
użyj wtyczki jquery: jquery.sizes.js
źródło