Toon posts:

[js/css] style uit een stylesheet halen?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik wil graag de style uit een stylesheet halen,
Ik heb een simpel scriptje getypt om het ff te testen:
JavaScript:
1
2
3
4
5
<script type="text/javascript">
  window.onload = function() {
   alert(document.getElementById('pre').style.backgroundPosition);
  }
</script>
met stylesheet:
HTML:
1
2
3
4
5
6
7
8
9
<style type="text/css">
  pre {
    background-position: 12px 14px;
  }
</style>

<pre id="pre">
  alert is leeg
</pre>
style inline:
HTML:
1
2
3
<pre id="pre" style="background-position: 12px 14px;">
  alert geeft 12px 14px aan
</pre>
dus de vraag, is het mogelijk om de style van een element uit het stylesheet te halen?
hoe doe ik dat dan?

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Gaat het je om de daadwerkelijke style uit je <style> tag (waardoor je het dus als object (eigenlijk Array) benaderd) of wil je de toegepaste style uitlezen?

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Verwijderd

Topicstarter
toegepaste style, dus alleen van dat element

  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

De style uit een stylesheet halen, kan ook zonder JS...
Je zet dan in de <head>-tag:
HTML:
1
<link rel="stylesheet" type="text/css" language="css" href="je_stylesheet">
Dan hoef je daarna alleen nog maar de CSS class of ID in de desbetreffende HTML tag te zetten...

Of bedoel je dat je een andere style op wil vragen, als je bijvoorbeeld met de muis over een vakje heen hoverd? Dan kan je (correct me if I'm wrong) gebruik maken van onmouseover en onmouseout en die geef je dan
JavaScript:
1
this.style.class='jeclass'
Mocht dat ook niet werken, of zijn wat je zocht, dan kan je denk ik even naar dit kijken, wat ik vond met Google...

[ Voor 25% gewijzigd door CH4OS op 08-01-2005 16:55 ]


  • Clay
  • Registratie: Oktober 1999
  • Laatst online: 25-02 11:17

Clay

cookie erbij?

in IE moet je dat uit de .currentStyle van het element halen, en in moz met document.defaultView.getComputedStyle(). ala:

code:
1
2
3
4
function getStyleValue(htmlElement, cssProperty) {
    var style = htmlElement.currentStyle || document.defaultView.getComputedStyle(htmlElement, '');
    return style[cssProperty] || style.getPropertyValue(cssProperty);
}

en dan b.v.
code:
1
2
3
window.onload = function() {
    alert(getStyleValue(document.getElementById('pre'), 'backgroundRepeat'))
}


Dan werkt het ook met geinclude stylesheets (want inline css wil je niet). Je hebt alleen wel een probleem, want IE slaat de backgroundPosition op als backgroundPositionX en backgroundPositionY, niet gewoon als "backgroundPosition" zoals moz dat doet.

[ Voor 17% gewijzigd door Clay op 08-01-2005 16:51 ]

Instagram | Flickr | "Let my music become battle cries" - Frédéric Chopin


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

met ^^ stom

wilde net een verhaal typmiepen over currentStyle en getComputedStyle() :P

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • Clay
  • Registratie: Oktober 1999
  • Laatst online: 25-02 11:17

Clay

cookie erbij?

vind die computedStyle maar omslachtig werken trouwens :{ wat een gedoe.

Instagram | Flickr | "Let my music become battle cries" - Frédéric Chopin


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Clay schreef op zaterdag 08 januari 2005 @ 16:53:
vind die computedStyle maar omslachtig werken trouwens :{ wat een gedoe.
Je lost het zoals gewoonlijk wel weer meesterlijk op ;)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Verwijderd

Topicstarter
bedankt,
werkt perfect :*)
Pagina: 1