197 of 264 menu

A getComputedStyle függvény

A getComputedStyle függvény lehetővé teszi egy elem bármely CSS tulajdonságának értékének megszerzését, akár CSS fájlból is.

Szintaxis

let objektum = getComputedStyle(elem);

Részletek

Hogyan működik (figyelem: nem úgy, ahogy elvárnánk): paraméterként egy elemet fogad, és visszaad egy objektumot, amely magában foglalja az átadott elem összes CSS tulajdonságát. Tegyük ezt az objektumot egy style változóba. A név tetszőleges, ez csak egy változó - ahogy kitaláljuk, úgy fogunk hivatkozni rá:

let elem = document.querySelector('#elem'); let style = getComputedStyle(elem); // a style tartalmazza a CSS tulajdonságokat

Vegyük például a szélességet. Ezt így tehetjük meg - style.width:

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

A bal oldali padding megjelenítéséhez - így tehetjük meg - style.paddingLeft:

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

A következő példában kiírjuk az elemünk számára érdekes összes CSS tulajdonságot:

<div id="elem">szöveg</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); // kiírja '30px' console.log('borderTopWidth: ' + style.borderTopWidth); // kiírja '20px' console.log('borderTopStyle: ' + style.borderTopStyle); // kiírja 'solid'

A getComputedStyle pontatlansága

Időnként a getComputedStyle függvény nem teljesen korrekten működik a szélességgel és magassággal. Ez annak köszönhető, hogy a padding és a szegély kiterjeszti a blokkot. A következő példában a blokk szélessége 200px, valamint van szegély és border. A blokk valódi szélessége 300px, de a getComputedStyle így is 200px-t fog kiírni:

<div id="elem">szöveg</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); // kiírja '200px' console.log('height: ' + style.height); // kiírja '200px'

Azaz: kiderül, hogy a getComputedStyle figyelmen kívül hagyja a blokk kiterjesztését és a méreteit úgy mutatja, mintha ez a kiterjesztés nem is létezne. De ez még nem minden: számít a görgetősáv jelenléte vagy hiánya is - egyes böngészők kivonják a görgetősáv szélességét a getComputedStyle által számolt szélességből, mások nem vonják ki. Röviden, itt egyáltalán minden nem keresztható és jobb, ha a getComputedStyle-t szélesség és magasság meghatározására nem használjuk, hanem a metrikákat használjuk, amelyeket alább tanulmányozunk.

Számított értékek

Van még egy árnyalat: ha a szélesség %-ban van megadva - akkor a getComputedStyle működése után px-ben fogjuk látni. Azaz lényegében nem a megadott szélességet kapjuk, hanem a számítottat. Nézze meg a következő példát:

<div id="elem">szöveg</div> #elem { width: 30%; /* szélesség %-ban megadva */ height: 200px; padding: 30px; border: 20px solid #BCBCBC; overflow: auto; } let elem = document.querySelector('#elem'); let style = getComputedStyle(elem); console.log('width: ' + style.width); // kiírja a szélességet px-ben

Lásd még

  • a cssText tulajdonság,
    amely tömegesen állítja be a CSS stílusokat
Magyar
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
A weboldal működéséhez, elemzéshez és személyre szabáshoz sütiket használunk. Az adatfeldolgozás a Adatvédelmi irányelvek szerint történik.
összes elfogadása beállítás elutasítás