1. childNodes also includes e.g. text nodes and comments. To skip them, use children instead ~
2. parentNode returns directly containing element, while offsetParent returns the closest positioned containing element;