display:none means that the the tag in question will not appear on the page at all (although you can still interact with it through the dom). There will be no space allocated for it between the other tags.
Visibility:hidden means that unlike display:none, the tag is not visible, but space is allocated for it on the page.
static - Elements renders in order, as they appear in the document flow. This is default.
absolute - The element is positioned relative to its first positioned (not static) ancestor element
fixed - The element is positioned relative to the browser window
relative - The element is positioned relative to its normal position, so "left:20" adds 20 pixels to the element's LEFT position
inherit - The value of the position property is inherited from the parent element