Quirksmode provides a nice findPos() function to find the absolute position of an element on a page.
If you need to find the position of the element relative to the viewport then you will also need to know the page’s current scroll position, which I found over at Stack Overflow.
Bringing these couple together we get:
var util = { // findPos() by quirksmode.org // Finds the absolute position of an element on a page findPos: function(obj) { var curleft = curtop = 0; if (obj.offsetParent) { do { curleft += obj.offsetLeft; curtop += obj.offsetTop; } while (obj = obj.offsetParent); } return [curleft,curtop]; }, // getPageScroll() by quirksmode.org // Finds the scroll position of a page getPageScroll: function() { var xScroll, yScroll; if (self.pageYOffset) { yScroll = self.pageYOffset; xScroll = self.pageXOffset; } else if (document.documentElement && document.documentElement.scrollTop) { yScroll = document.documentElement.scrollTop; xScroll = document.documentElement.scrollLeft; } else if (document.body) {// all other Explorers yScroll = document.body.scrollTop; xScroll = document.body.scrollLeft; } return [xScroll,yScroll] }, // Finds the position of an element relative to the viewport. findPosRelativeToViewport: function(obj) { var objPos = this.findPos(obj) var scroll = this.getPageScroll() return [ objPos[0]-scroll[0], objPos[1]-scroll[1] ] } }
I needed to position a jQuery UI Dialog relative to another element on a page and found these functions worked well to get my dialog nicely positioned in IE6, IE7, IE8, Safari, Firefox and Chrome.
HTML Checked, Disabled and Selected attributes
Checked, Disabled and Selected are common HTML Boolean attributes. So what’s the correct way to specify these (and any other similar Boolean attributes) in your HTML markup? From the HTML 5 specs we get the following.
DO THIS
To add the attributes, you can do this:
Or this:
And to not apply the attribute, just leave them off:
DON’T DO THIS
Leaving the attributes without a value is invalid:
Using true/false values is also invalid: