Moderní tvorba webových aplikací

O webu

Zjištění výsledného CSS v JavaScriptu

Jak v JavaScriptu zjistit výslednou hodnotu libovolné CSS vlastnosti určitého elementu.

2 minuty

V některých případech je potřeba v JS spočítat výsledné hodnoty CSS vlastností nějakého elementu. To se může hodit třeba při tvorbě universálního JS + CSS řešení, kdy nelze spoléhat na výchozí CSS, ale zase je nemůžeme natvrdo přenastavit.

Zatímco pro nastavování CSS vlastností z JavaScriptu stačí jen z názvů CSS vlastností vhodit spojovník a následující písmeno zvětšit:

element.style.cssVlastnost = "její hodnota";
element.style.backgroundColor = "red";

Nebo veškeré CSS zapsat do cssTextu.

element.style.cssText = "
  css-vlastnost: 'její hodnota'; 
  background-color: 'red'
";

Při čtení stylu skriptem je to komplikovanější.

<style>
  div {color: red}
<style>
<div></div>
<script>
  alert(
    document.getElementsByTagName("div")[0].style.color
  );
</script>

Tento kód nevyhodí v alertu hodnotu red, jak by se mohlo očekávat. Ukázka.

Řešení

Co tedy s tím? Existují vlastnosti getComputedStyle a do IE 8 currentStyle. Ve starších IE je ještě drobná odlišnost v tom, že potřebuje název CSS vlastnosti v camelCase a ne se-spojovníkem.

Funkce sjednocující prohlížeče může vypadat následovně:

function getStyle(oElm){
    return window.getComputedStyle ? getComputedStyle(oElm, "") : oElm.currentStyle;
}

Použití

var div = document.getElementsByTagName("div")[0];
var sktuecnyRamecek = getStyle(div).border;

Živá ukázka

Související články

Jak vkládat 3D objekty na web pomocí Three.js

Které formáty použít, jak vytvářet modely pomocí AI a kdy raději použít obrázek nebo video.

15 minut

CSS pseudo element ::marker

CSS pseudo element ::marker umožňuje stylovat odrážky seznamů

4 minuty

Zobrazení dlouhé URL

Jak zobrazit dlouhé URL v aplikaci, aby nerozbila layout.

6 minut

Převod písmen na VELKÁ a malá

Převedení textu na velká nebo malá písmena.

12 minut

Novinky e-mailem

Když budu mít něco opravdu zajímavého, můžu vám to poslat e-mailem

Web jecas.cz píše Bohumil Jahoda, kontakt
Seznam všech článků
2013–2025