197 of 264 menu

Функцијата getComputedStyle

Функцијата getComputedStyle овозможува да се добие вредноста на било кое CSS својство на елементот, дури и од CSS датотека.

Синтакса

let objekt = getComputedStyle(element);

Детали

Како функционира (внимание: не како што очекуваме): како параметар функцијата прима елемент, а враќа објект, кој содржи во себе сите CSS својства на пренесениот елемент. Ајде да го ставиме овој објект во променлива style. Името е произволно, ова е само променлива - како што замислиме, така и ќе се обраќаме:

let elem = document.querySelector('#elem'); let style = getComputedStyle(elem); // во style лежат CSS својства

Ајде да ја испечатиме, на пример, ширината. Ова се прави вака - style.width:

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

За да се испечати, на пример, левиот padding - правиме вака - style.paddingLeft:

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

Во следниот пример ќе ги испечатиме сите нас интересни CSS својства за нашиот елемент:

<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); // ќе испечати '30px' console.log('borderTopWidth: ' + style.borderTopWidth); // ќе испечати '20px' console.log('borderTopStyle: ' + style.borderTopStyle); // ќе испечати 'solid'

Неточност на getComputedStyle

Понекогаш функцијата getComputedStyle работи не сосема коректно со ширина и висина. Ова е поврзано со фактот што padding и границата го прошируваат блокот. Во следниот пример на блокот му е зададена ширина 200px, како и граница и border. Реалната ширина на блокот е 300px, но getComputedStyle сепак ќе испечати 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); // ќе испечати '200px' console.log('height: ' + style.height); // ќе испечати '200px'

Тоа е: излегува дека getComputedStyle го игнорира проширувањето на блокот и ги покажува неговите димензии како да немаше такво проширување. Но тоа не е сè: исто така има значење присуството или отсуството на лентата за лизгање - некои прелистувачи ја одземаат ширината на лентата за лизгање од ширината пресметана преку getComputedStyle, а некои не одземаат. Во принцип овде воопшто сè не е крос-прелистувачко и подобро е getComputedStyle за одредување на ширина и висина да не се користи, туку да се користат метриките кои ќе ги научиме малку подоцна.

Пресметани вредности

Има уште еден нијанс: ако ширината е зададена во % - тогаш по работата на getComputedStyle ќе видиме ја во px. Тоа е во суштина ние не добиваме зададена ширина, туку пресметана. Погледнете го следниот пример:

<div id="elem">text</div> #elem { width: 30%; /* ширината е зададена во % */ height: 200px; padding: 30px; border: 20px solid #BCBCBC; overflow: auto; } let elem = document.querySelector('#elem'); let style = getComputedStyle(elem); console.log('width: ' + style.width); // ќе испечати ширина во px

Погледнете ги и

  • својството cssText,
    кое масовно ги задава CSS стиловите
Македонски
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние користиме колачиња за работата на веб-страната, анализа и персонализација. Обработката на податоци се врши во согласност со Политиката за приватност.
прифати ги сите прилагоди одбиј