197 of 264 menu

Fungsi getComputedStyle

Fungsi getComputedStyle memungkinkan Anda mendapatkan nilai dari properti CSS apa pun pada elemen, bahkan dari file CSS.

Sintaks

let objek = getComputedStyle(elemen);

Detail

Cara kerjanya (perhatian: tidak seperti yang kita harapkan): parameternya, fungsi menerima elemen, dan mengembalikan objek, yang berisi semua properti CSS dari elemen yang diberikan. Mari kita letakkan objek ini ke dalam variabel style. Namanya arbitrer, ini hanya variabel - terserah kita menamakannya, dan kita akan mengaksesnya seperti itu:

let elem = document.querySelector('#elem'); let style = getComputedStyle(elem); // CSS properties ada di dalam style

Mari kita tampilkan, misalnya, lebarnya. Ini dilakukan seperti ini - style.width:

let elem = document.querySelector('#elem'); let style = getComputedStyle(elem); console.log(style.width);

Untuk menampilkan, misalnya, padding kiri - lakukan seperti ini - style.paddingLeft:

let elem = document.querySelector('#elem'); let style = getComputedStyle(elem); console.log(style.paddingLeft);

Pada contoh berikutnya kita akan menampilkan semua properti CSS yang kita minati untuk elemen kita:

<div id="elem">teks</div> #elem { width: 200px; height: 200px; padding: 30px; border: 20px solid #BCBCBC; overflow: auto; } let elem = document.querySelector('#elem'); let style = getComputedStyle(elem); console.log('paddingLeft: ' + style.paddingLeft); // akan menampilkan '30px' console.log('borderTopWidth: ' + style.borderTopWidth); // akan menampilkan '20px' console.log('borderTopStyle: ' + style.borderTopStyle); // akan menampilkan 'solid'

Ketidakakuratan getComputedStyle

Terkadang fungsi getComputedStyle bekerja tidak sepenuhnya benar dengan lebar dan tinggi. Ini terkait dengan fakta bahwa padding dan border memperluas blok. Pada contoh berikutnya, blok diberikan lebar 200px, serta border dan border. Lebar blok sebenarnya 300px, tetapi getComputedStyle tetap akan menampilkan 200px:

<div id="elem">teks</div> #elem { width: 200px; height: 200px; padding: 30px; border: 20px solid #BCBCBC; overflow: auto; } let elem = document.querySelector('#elem'); let style = getComputedStyle(elem); console.log('width: ' + style.width); // akan menampilkan '200px' console.log('height: ' + style.height); // akan menampilkan '200px'

Artinya: ternyata getComputedStyle mengabaikan perluasan blok dan menunjukkan ukurannya seolah-olah perluasan itu tidak ada. Tapi itu belum semuanya: ada juga pengaruh dari ada atau tidaknya scroll bar - beberapa browser mengurangi lebar scroll bar dari lebar yang dihitung melalui getComputedStyle, dan beberapa tidak menguranginya. Singkatnya, di sini semuanya tidak cross-browser dan lebih baik getComputedStyle untuk menentukan lebar dan tinggi tidak digunakan, dan menggunakan metrik, yang akan kita pelajari sebentar lagi.

Nilai yang Dihitung

Ada satu nuansa lagi: jika lebar diberikan dalam % - maka setelah getComputedStyle bekerja, kita akan melihatnya dalam px. Artinya, pada dasarnya kita mendapatkan bukan lebar yang ditentukan, tetapi lebar yang dihitung. Lihatlah pada contoh berikut:

<div id="elem">teks</div> #elem { width: 30%; /* lebar diberikan dalam % */ height: 200px; padding: 30px; border: 20px solid #BCBCBC; overflow: auto; } let elem = document.querySelector('#elem'); let style = getComputedStyle(elem); console.log('width: ' + style.width); // akan menampilkan lebar dalam px

Lihat Juga

  • properti cssText,
    yang mengatur gaya CSS secara massal
Indonesia
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan cookie untuk operasi situs, analitik, dan personalisasi. Pemrosesan data dilakukan sesuai dengan Kebijakan Privasi.
terima semua atur tolak