This is a little old post, but there is an easier way to do this without using positioning. Wrap each form element in a list element and set the display to "inline block" and the range display to "block" like this -
li{ display: inline-block; } li span{ display: block; }
Then you will need to change the order of the html elements like this:
<span>http://</span> <input type="url" placeholder="eg www.google.com" />
However, you can leave it the same if you want the range to appear at the bottom of the input element.
source share