Cross browser function for retrieving global/external CSS properties
It's easy to combine IE's "currentStyle
" object and
Firefox's "getComputedStyle
" method into one, harmonious
cascaded CSS property finder. Some object detection plus use of the
square bracket notation ([]) to reference a property is all
that's needed:
<script type="text/javascript">
function getStyle(el, cssprop){
if (el.currentStyle) //IE
return el.currentStyle[cssprop]
else if (document.defaultView && document.defaultView.getComputedStyle)
//Firefox
return document.defaultView.getComputedStyle(el, "")[cssprop]
else //try and get inline style
return el.style[cssprop]
}
</script>
For those unaware, in JavaScript, you can access a property using one
of two notations- the more common dot (.) notation, or the square
bracket notation ([]). The later while more obtuse, has the advantage of
enabling you to specify a property as a variable name (instead of
string). It comes in handy in this case where the CSS property we want
to look up is obviously dynamic. The "cssprop
" parameter in
the above function should be the desired CSS property to look up in
camelCase convention (ie: "backgroundColor
" instead of "background-color
").
Lets go back to our familiar example again, this time, using our new cross browser function to retrieve the cascaded CSS property values of the element:
<head>
<style type="text/css">
#test{
width: 100px;
height: 80px;
background-color: yellow;
}
</style>
</head>
<body>
<div id="test">This is some text</div>
<script type="text/javascript">
function getStyle(el, cssprop){
if (el.currentStyle) //IE
return el.currentStyle[cssprop]
else if (document.defaultView && document.defaultView.getComputedStyle)
//Firefox
return document.defaultView.getComputedStyle(el, "")[cssprop]
else //try and get inline style
return el.style[cssprop]
}
var mydiv=document.getElementById("test")
alert(getStyle(mydiv, 'width')) //alerts 100px
alert(getStyle(mydiv, 'backgroundColor')) //alerts yellow
</script>
</body>
And there you have it folks!
- Tutorial introduction
- Getting global and external style sheet values in IE
- Getting global and external style sheet values in Firefox
- Cross browser function for retrieving global/external CSS properties