Kolejna rzecz, której nie wypada znać, czyli pobieranie stylów CSS za pomocą JavaScript. Do dzieła.

Rzućmy okiem na to:

window.addEventListener("DOMContentLoaded", function(){

    let para = document.getElementById('para');
    para.style.fontSize = "18px";
    console.log(para.style.fontSize);
    //18px

});

Niby fajnie, ustawiliśmy, odczytaliśmy. Nie ustawiajmy zatem:

window.addEventListener("DOMContentLoaded", function(){
  
    let para = document.getElementById('para');
    console.log(para.style.fontSize);
    //<empty string>

});

Style property okazuje się zawodne – choć paragraf ma jakiś font-size, ten nie jest w stanie go odczytać, bo nigdy go nie ustawiał.

Ok, zróbmy to:

window.addEventListener("DOMContentLoaded", function(){
   
    let para = document.getElementById('para');
    let computed = getComputedStyle(para);
    let fs = computed.getPropertyValue('font-size');
    console.log(fs);
    //16px

});

Już lepiej. Postarajmy się to zmienić na typ liczbowy:

window.addEventListener("DOMContentLoaded", function(){
 
    let para = document.getElementById('para');
    let computed = getComputedStyle(para);
    let fs = computed.getPropertyValue('font-size');
    console.log(fs);
    //16px
    console.log(+fs);
    //NaN
    console.log(parseInt(fs));
    //16
    console.log(Number(fs));
    //NaN

});

Jak widać mamy już sposób na zamianę tego na liczbę. Teraz funkcję napiszmy:

function incrementFontsize(el, unit="px", by=1){

    let computed = getComputedStyle(para);
    let fs = computed.getPropertyValue('font-size');

    let fsNumber = parseInt(fs);
    let newSize = `${fsNumber+by}${unit}`;

    el.style.fontSize = newSize;
}

Teraz możemy użyć tej funkcji:

window.addEventListener("DOMContentLoaded", function(){
     let para = document.getElementById('para');

     incrementFontsize(para);
     incrementFontsize(para);
     incrementFontsize(para);

     console.log(para.style.fontSize);
     //19px
   
});

Działa.