I have a markup like this:
<label>First Name: <input type="text" /></label>
<label>Last Name: <input type="text" /></label>
<label>Email: <input type="text" /></label>
And a CSS like this:
label{display:block; padding:10px 0;}
input{position:absolute; left:100px;}
And it’s result is like this in almost every browser I test:
It works fine while there is no top or bottom in CSS code for absolute positioned inputs.
My question is: Is this kind of aligning elements a good practice and are you know any issue with a browser with this kind of positioning?
Here is fiddle of the code.

CSS does not have to be semantic. Semantic HTML means that the tags, identifiers and classes have meaning.
CSS is purely representational and does not have to have meaning.
And absolute positioning without defining top and bottom is perfectly OK (it just defaults to
auto)