197 of 264 menu

Funkcija getComputedStyle

Funkcija getComputedStyle ļauj iegūt jebkuras CSS īpašības vērtību elementam, pat no CSS faila.

Sintakse

let objekts = getComputedStyle(elements);

Detaļas

Kā tas darbojas (uzmanību: ne tā, kā mēs gaidām): parametrā funkcija pieņem elementu, un atgriež objektu, kas satur sevī visas CSS īpašības padotajam elementam. Ieliksim šo objektu mainīgajā style. Nosaukums ir patvaļīgs, tas vienkārši ir mainīgais - kā izdomāsim, tā arī piekļūsim:

let elem = document.querySelector('#elem'); let style = getComputedStyle(elem); // style atrodas CSS īpašības

Izvadīsim, piemēram, platumu. Tas tiek darīts šādi - style.width:

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

Lai izvadītu, piemēram, kreiso padding - darām šādi - style.paddingLeft:

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

Nākamajā piemērā mēs izvadīsim visas mūs interesējošās CSS īpašības mūsu elementam:

<div id="elem">text</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); // izvadīs '30px' console.log('borderTopWidth: ' + style.borderTopWidth); // izvadīs '20px' console.log('borderTopStyle: ' + style.borderTopStyle); // izvadīs 'solid'

getComputedStyle neprecizitāte

Dažreiz funkcija getComputedStyle strādā ne gluži korekti ar platumu un augstumu. Tas ir saistīts ar to, ka padding un apmale paplašina bloku. Nākamajā piemērā blokam ir iestatīts platums 200px, kā arī apmale un border. Reālais bloka platums 300px, bet getComputedStyle tik un tā izvadīs 200px:

<div id="elem">text</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); // izvadīs '200px' console.log('height: ' + style.height); // izvadīs '200px'

Tas ir: iznāk, ka getComputedStyle ignorē bloka paplašināšanos un rāda tā izmērus tā, it kā šī paplašināšanās nebūtu bijusi. Bet tas vēl nav viss: arī nozīme ir, vai ir ritjosla vai nav - daži pārlūkprogrammas atņem ritjoslas platumu no platuma, kas aprēķināts caur getComputedStyle, bet daži neatņem. Kopumā šeit vispār viss nav starppārlūkprogrammu un labāk getComputedStyle platuma un augstuma noteikšanai neizmantot, bet izmantot metrikas, kuras mēs apgūsim mazliet vēlāk.

Aprēķinātās vērtības

Ir vēl viena nianse: ja platums ir iestatīts % - tad pēc getComputedStyle darbības mēs redzēsim to px. Tas ir būtībā mēs iegūstam ne iestatīto platumu, bet aprēķināto. Skatieties nākamajā piemērā:

<div id="elem">text</div> #elem { width: 30%; /* platums iestatīts % */ height: 200px; padding: 30px; border: 20px solid #BCBCBC; overflow: auto; } let elem = document.querySelector('#elem'); let style = getComputedStyle(elem); console.log('width: ' + style.width); // izvadīs platumu px

Skatieties arī

  • īpašība cssText,
    kas masīvi iestata CSS stilus
Latviešu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mēs izmantojam sīkdatnes, lai nodrošinātu vietnes darbību, analīti un personalizāciju. Datu apstrāde notiek saskaņā ar Konfidencialitātes politiku.
pieņemt visus iestatīt noraidīt