Funktsioon getComputedStyle
Funktsioon getComputedStyle võimaldab
saada mis tahes elemendi CSS-i omaduse väärtuse,
isegi CSS-i failist.
Süntaks
let objekt = getComputedStyle(element);
Üksikasjad
Kuidas see töötab (tähelepanu: mitte nii nagu me
oodatame): parameetrina võtab funktsiooni element,
ja tagastab objekti, mis sisaldab endas
kõiki edastatud elemendi CSS-i omadusi.
Paneme selle objekti muutujasse
style. Nimetus on suvaline, see
on lihtsalt muutuja - kuidas me välja mõtleme, nii
ja me pöördumegi:
let elem = document.querySelector('#elem');
let style = getComputedStyle(elem); // style-s on CSS-i omadused
Väljastame näiteks laiuse. See tehakse
nii - style.width:
let elem = document.querySelector('#elem');
let style = getComputedStyle(elem);
console.log(style.width);
Et väljastada näiteks vasak padding
- teeme nii - style.paddingLeft:
let elem = document.querySelector('#elem');
let style = getComputedStyle(elem);
console.log(style.paddingLeft);
Järgmises näites väljastame kõik meid huvitavad CSS-i omadused meie elemendi jaoks:
<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); // väljastab '30px'
console.log('borderTopWidth: ' + style.borderTopWidth); // väljastab '20px'
console.log('borderTopStyle: ' + style.borderTopStyle); // väljastab 'solid'
GetComputedStyle ebatäpsus
Mõnikord funktsioon getComputedStyle töötab
mitte päris korrektselt laiuse ja kõrgusega.
See on seotud sellega, et padding ja piir
laiendavad plokki. Järgmises näites on plokile
määratud laius 200px, samuti piir
ja border. Ploki tegelik laius on 300px,
kuid getComputedStyle väljastab ikkagi
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); // väljastab '200px'
console.log('height: ' + style.height); // väljastab '200px'
See tähendab: selgub, et getComputedStyle
ignoreerib ploki laienemist ja näitab selle
mõõtmed nii, nagu seda laienemist poleks olnud.
Kuid see pole veel kõik: samuti on oluline
kerimisriba olemasolu või puudumine - mõned
brauserid lahutavad kerimisriba laiuse
getComputedStyle kaudu arvutatud laiusest,
ja mõned ei lahuta. Üldiselt on siin üldse
kõik mitte cross-browser ja parem on getComputedStyle
laiuse ja kõrguse määramiseks mitte kasutada,
vaid kasutada mõõdikuid, mida me õpime
veidi allpool.
Arvutatud väärtused
On veel üks nüanss: kui laius on määratud
% - siis pärast getComputedStyle töötamist näeme
seda px-des. See tähendab sisuliselt me ei
saa määratud laiust, vaid arvutatud. Vaadake
järgmist näidet:
<div id="elem">text</div>
#elem {
width: 30%; /* laius määratud %-des */
height: 200px;
padding: 30px;
border: 20px solid #BCBCBC;
overflow: auto;
}
let elem = document.querySelector('#elem');
let style = getComputedStyle(elem);
console.log('width: ' + style.width); // väljastab laiuse px-des
Vaata ka
-
omadus
cssText,
mis määrab massiliselt CSS-i stiile