197 of 264 menu

getComputedStyle Ֆունկցիան

getComputedStyle ֆունկցիան թույլ է տալիս ստանալ տարրի ցանկացած CSS հատկության արժեքը, նույնիսկ CSS ֆայլից:

Շարահյուսություն

let օբյեկտ = getComputedStyle(տարր);

Մանրամասներ

Ինչպես է այն աշխատում (ուշադրություն. ոչ այնպես, ինչպես մենք ակնկալում ենք). պարամետրով ֆունկցիան ընդունում է տարրը, և վերադարձնում է մի օբյեկտ, որը պարունակում է փոխանցված տարրի բոլոր 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हिन्दीMagyarIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Մենք օգտագործում ենք cookie-ներ կայքի աշխատանքի, վերլուծության և անհատականացման համար։ Տվյալների մշակումը կատարվում է համաձայն Գաղտնիության քաղաքականության։
ընդունել բոլորը կարգավորել մերժել