Rumah > Artikel > hujung hadapan web > Mengapakah `Element.style` Mengembalikan Nilai Berbeza untuk Gaya Lembaran Gaya Sebaris dan Master?
Percanggahan Pencapaian Gaya Paparan dalam Lembaran Gaya Induk
Apabila mengakses gaya elemen melalui sifat Element.style JavaScript, adalah penting untuk mengambil perhatian potensi perbezaan dalam tingkah laku berdasarkan cara gaya diisytiharkan.
Dalam senario yang diterangkan, paparan awal:tiada gaya ditetapkan sebaris pada elemen DIV. Walau bagaimanapun, elemen itu kemudiannya disembunyikan apabila gaya awal dialihkan ke helaian gaya induk. Menariknya, mengakses sifat style.display elemen mengembalikan rentetan kosong, manakala sifat yang sama yang diakses melalui gaya sebaris mengembalikan "tiada".
Tingkah laku ini dikaitkan dengan perbezaan antara gaya yang diisytiharkan dan gaya dikira. Gaya yang diisytiharkan ialah gaya yang ditetapkan secara eksplisit kepada elemen, sama ada sebaris atau melalui lembaran gaya. Gaya yang dikira, sebaliknya, mewakili gaya terpamer akhir bagi sesuatu elemen, dengan mengambil kira semua faktor yang berkaitan, termasuk gaya yang diwarisi dan bertingkat.
Apabila mengakses Element.style, anda hanya mendapat gaya yang diisytiharkan. Untuk mendapatkan gaya yang dikira, yang mencerminkan gaya sebenar yang digunakan pada elemen, anda mesti menggunakan kaedah window.getComputedStyle(). Kaedah ini menyediakan perwakilan komprehensif penggayaan elemen, termasuk sifat yang dipengaruhi oleh nilai warisan, lata dan lalai penyemak imbas.
Dengan menggunakan getComputedStyle(), anda boleh mendapatkan semula gaya paparan elemen dengan pasti, walaupun ia pada mulanya disembunyikan melalui helaian gaya induk:
const element = document.getElementById('myDiv'); const display = getComputedStyle(element).getPropertyValue('display'); // display will now return 'none' or 'block', as appropriate
Pendekatan yang diperbetulkan ini memastikan anda mengakses gaya pengiraan elemen yang tepat, tanpa mengira cara gaya unsur tersebut diisytiharkan.
Atas ialah kandungan terperinci Mengapakah `Element.style` Mengembalikan Nilai Berbeza untuk Gaya Lembaran Gaya Sebaris dan Master?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!