CSS probably never ceases to amaze me. Given the answer of Dhaval Martak, I was really able to achieve what I wanted, correctly aligned labels and left-aligned fields (to the right of the labels):
label { display: block; position:relative; text-align: right; width: 100px; margin: 0 0 5px 0; } label > input, label > select, input { position: absolute; left: 120px; }
JSfiddle still points to my remaining problem, the field aligns with the bottom of the label if the label breaks the line. But I am sure that it can also be amended.
Of course, it would be nice if the space between labels and fields could be assigned more “dynamically” based on label sizes (for example, in different languages), but I have not done so yet. I think I will have to resort to tables if I really need it.
Patru source share