Сначала я бы попытался поместить каждую метку ошибки в тот же элемент списка, что и входные данные:
<li><input type="text" name="login_username" id="login_username" placeholder="Username ">
<label class="error" for="login_username" style="display:none;">Please enter your username</label></li>
Это исключило бы «пустой» элемент списка, вызвавший дополнительный разрыв строки.Если размер окна входа в систему установлен, сообщение должно переноситься на следующую строку при отображении.(Вы могли бы даже указать display: block вместо отображения по умолчанию: inline).
Лично я бы не использовал неупорядоченный список для полей формы, я бы использовал fieldset и (в этом случае) дал бывходы и метки фиксированной ширины и дисплея: блок.Но это только я.
... Я должен спросить ... меняет ли html вот так вариант?