Funksioni getComputedStyle
Funksioni getComputedStyle lejon
marrjen e vlerës së çdo vetie CSS të një elementi,
madje edhe nga skedari CSS.
Sintaksa
let objekti = getComputedStyle(elementi);
Detaje
Si funksionon (kushtëzim: jo siç
presim): si parametër funksioni pranon elementin,
dhe kthen një objekt, i cili përmban në vetvete
të gjitha vetitë CSS të elementit të transmetuar.
Le ta vendosim këtë objekt në një ndryshore
style. Emërtimi është arbitrar, ky është
thjesht një ndryshore - si ta emërtojmë, ashtu
do t'i referohemi:
let elem = document.querySelector('#elem');
let style = getComputedStyle(elem); // në style gjenden vetitë CSS
Le të shfaqim, për shembull, gjerësinë. Kjo bëhet
kështu - style.width:
let elem = document.querySelector('#elem');
let style = getComputedStyle(elem);
console.log(style.width);
Për të shfaqur, për shembull, padding-in e majtë
- bëjmë kështu - style.paddingLeft:
let elem = document.querySelector('#elem');
let style = getComputedStyle(elem);
console.log(style.paddingLeft);
Në shembullin vijues do të shfaqim të gjitha vetitë CSS që na interesojnë për elementin tonë:
<div id="elem">tekst</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); // do të shfaqë '30px'
console.log('borderTopWidth: ' + style.borderTopWidth); // do të shfaqë '20px'
console.log('borderTopStyle: ' + style.borderTopStyle); // do të shfaqë 'solid'
Pasaktësia e getComputedStyle
Ndonjëherë funksioni getComputedStyle funksionon
jo krejtësisht korrekt me gjerësinë dhe lartësinë.
Kjo lidhet me faktin se padding-i dhe kufiri
zgjasin bllokun. Në shembullin vijues bllokut
i është caktuar gjerësia 200px, si dhe kufiri
dhe border. Gjerësia reale e bllokut është 300px,
por getComputedStyle prapë do të shfaqë
200px:
<div id="elem">tekst</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); // do të shfaqë '200px'
console.log('height: ' + style.height); // do të shfaqë '200px'
Pra: del se getComputedStyle
injoron zgjerimin e bllokut dhe i tregon
përmasat e tij sikur ky zgjerim nuk ka qenë.
Por kjo nuk është e gjitha: gjithashtu ka rëndësi prania
ose mungesa e shiritit të lëvizjes - disa
shfletues heqin gjerësinë e shiritit të lëvizjes
nga gjerësia e llogaritur përmes getComputedStyle,
kurse disa nuk e heqin. Në përgjithësi këtu
gjithçka nuk është kryq-shfletues dhe është më mirë të mos përdoret
getComputedStyle për përcaktimin e gjerësisë dhe lartësisë,
por të përdoren metrikat, të cilat do t'i studiojmë
pak më poshtë.
Vlerat e Llogaritura
Ka edhe një nuancë: nëse gjerësia është caktuar në
% - atëherë pas punës së getComputedStyle do ta shohim
atë në px. Pra në thelb ne nuk marrim
gjerësinë e caktuar, por atë të llogaritur. Shikoni
shembullin vijues:
<div id="elem">tekst</div>
#elem {
width: 30%; /* gjerësia e caktuar në % */
height: 200px;
padding: 30px;
border: 20px solid #BCBCBC;
overflow: auto;
}
let elem = document.querySelector('#elem');
let style = getComputedStyle(elem);
console.log('width: ' + style.width); // do të shfaqë gjerësinë në px
Shihni Gjithashtu
-
vetia
cssText,
e cila cakton masivisht stilet CSS