Hanya bertanya-tanya - bagaimana menggunakan jQuery - saya bisa mendapatkan elemen yang diformat total padding dan margin dll? yaitu 30px 30px 30px 30px atau 30px 5px 15px 30px dll
Saya mencoba
var margT = jQuery('img').css('margin');
var bordT = jQuery('img').css('border');
var paddT = jQuery('img').css('padding');
Tapi ini tidak berhasil? http://jsfiddle.net/q7Mra/
Jawaban:
Menurut dokumentasi jQuery , properti CSS singkatan tidak didukung.
Bergantung pada apa yang Anda maksud dengan "padding total", Anda mungkin dapat melakukan sesuatu seperti ini:
sumber
auto
atau2%
atauinherit
?$( elem ).css([ "borderTopWidth", "borderRightWidth", "borderBottomWidth", "borderLeftWidth" ]).
Periksa dokumen jQuery API untuk informasi masing-masing:
Berikut jsFiddle yang diedit menunjukkan hasilnya.
Anda bisa melakukan jenis operasi yang sama untuk Height untuk mendapatkan margin, border, dan paddingnya.
sumber
margin-left
danmargin-right
, dan mungkinem
ataupx
.height
bukanwidth
?jQuery.css()
mengembalikan ukuran dalam piksel, meskipun CSS sendiri menentukannya dalam em, atau sebagai persentase, atau apa pun. Ini menambahkan unit ('px'), tetapi Anda tetap dapat menggunakannyaparseInt()
untuk mengonversinya menjadi bilangan bulat (atauparseFloat()
, untuk fraksi piksel yang masuk akal).http://jsfiddle.net/BXnXJ/
sumber
Ini bekerja untuk saya:
Contoh hasil:
Untuk membuat total:
sumber
Berbatasan
Saya yakin Anda bisa mendapatkan lebar perbatasan menggunakan
.css('border-left-width')
. Anda juga dapat mengambil atas, kanan, dan bawah dan membandingkannya untuk menemukan nilai maksimal. Kuncinya di sini adalah Anda harus menentukan sisi tertentu.Lapisan
Lihat jQuery menghitung padding-top sebagai integer dalam px
Batas
Gunakan logika yang sama seperti border atau padding.
Alternatifnya, Anda bisa menggunakan outerWidth . Pseudo-code seharusnya
margin = (outerWidth(true) - outerWidth(false)) / 2
. Perhatikan bahwa ini hanya berfungsi untuk menemukan margin secara horizontal. Untuk mencari margin secara vertikal, Anda perlu menggunakan outerHeight .sumber
Saya memiliki cuplikan yang menunjukkan, cara mendapatkan jarak elemen dengan jQuery:
sumber
Jika elemen yang Anda analisis tidak memiliki margin, batas, atau definisi apa pun, Anda tidak akan dapat mengembalikannya. Di puncak Anda akan bisa mendapatkan 'otomatis' yang biasanya merupakan default.
Dari contoh Anda, saya dapat melihat bahwa Anda memiliki
margT
variabel. Tidak yakin apakah Anda mencoba mendapatkan margin-top. Jika itu kasus yang harus Anda gunakan.css('margin-top')
.Anda juga mencoba mendapatkan penataan gaya dari 'img' yang akan dihasilkan (jika Anda memiliki lebih dari satu) dalam larik.
Yang harus Anda lakukan adalah menggunakan
.each()
metode jquery.Sebagai contoh:
sumber
kembali:
dapatkan nilai:
Edit:
gunakan plugin jquery: jquery.sizes.js
sumber