Misalkan aturannya adalah sebagai berikut:
.largeField {
width: 65%;
}
Apakah ada cara untuk mendapatkan kembali '65% ', dan bukan nilai pikselnya?
Terima kasih.
EDIT: Sayangnya menggunakan metode DOM tidak dapat diandalkan dalam kasus saya, karena saya memiliki stylesheet yang mengimpor stylesheet lain, dan sebagai hasilnya parameter cssRules berakhir dengan nilai null atau tidak ditentukan .
Namun, pendekatan ini akan berfungsi di sebagian besar kasus langsung (satu stylesheet, beberapa deklarasi stylesheet terpisah di dalam tag head dokumen).
Jawaban:
Tidak ada cara bawaan, saya khawatir. Anda bisa melakukan sesuatu seperti ini:
sumber
class="largeField"
ke span, saat ini Anda memilih satu set kosong.Cara paling mudah
sumber
style="width:65%"
).Ini sangat mungkin!
Anda harus terlebih dahulu menyembunyikan () elemen induk. Ini akan mencegah JavaScript menghitung piksel untuk elemen anak.
Lihat contoh saya .
Sekarang ... Saya ingin tahu apakah saya pertama kali menemukan peretasan ini :)
Memperbarui:
Satu baris
Ini akan meninggalkan elemen tersembunyi sebelum
</body>
tag, yang mungkin Anda inginkan.remove()
.Lihat contoh satu baris .
Saya terbuka untuk ide yang lebih baik!
sumber
Anda dapat mengakses
document.styleSheets
objek:sumber
styleSheets[0]
).for (var i=0; rules.length; i++)
kerjanya? Bukankah seharusnyafor (var i=0; i<rules.length; i++)
Terlambat, tetapi untuk pengguna baru, coba ini jika gaya css berisi persentase :
sumber
Sebuah plugin jQuery berdasarkan jawaban Adams:
Akan mengembalikan '65% '. Hanya mengembalikan angka yang dibulatkan untuk bekerja lebih baik jika Anda suka jika (lebar == '65%'). Jika Anda akan menggunakan jawaban Adams secara langsung, itu tidak berhasil (saya mendapatkan sesuatu seperti 64.93288590604027). :)
sumber
Membangun solusi timofey yang sangat baik dan mengejutkan, berikut ini adalah implementasi Javascript murni:
Semoga bermanfaat bagi seseorang.
sumber
{
di akhir baris pertama.Saya memiliki masalah serupa dalam Mendapatkan nilai stylesheet global di jQuery , akhirnya saya menemukan solusi yang sama seperti di atas .
Hanya ingin menghubungkan kedua pertanyaan tersebut sehingga orang lain bisa mendapatkan keuntungan dari temuan selanjutnya.
sumber
Anda dapat menempatkan gaya yang perlu Anda akses dengan jQuery di:
Maka seharusnya dimungkinkan (meskipun tidak selalu mudah) untuk menulis fungsi js untuk mengurai semua yang ada di dalam tag gaya di kepala dokumen dan mengembalikan nilai yang Anda butuhkan.
sumber
Anda dapat menggunakan fungsi css (width) untuk mengembalikan lebar elemen saat ini.
yaitu.
Lihat juga: http://api.jquery.com/width/ http://api.jquery.com/css/
sumber
Tidak ada apa pun di jQuery, dan tidak ada yang langsung bahkan di javascript. Mengambil jawaban timofey dan menjalankannya, saya membuat fungsi ini yang berfungsi untuk mendapatkan properti apa pun yang Anda inginkan:
sumber
Ubah dari piksel menjadi persentase menggunakan perkalian silang .
Penyetelan Formula:
1.) (element_width_pixels / parent_width_pixels) = (element_width_percentage / 100)
2.) element_width_percentage = (100 * element_width_pixels) / parent_width_pixels
Kode sebenarnya:
sumber