Это происходит потому, что ваш диапазон не равен display: block
.
Я предполагаю, что когда эта строка переходит на следующую строку, вы хотите, чтобы она была выровнена по левому краю, а не снизу и по-прежнему выровнена по правому краю.
Я предлагаю использовать медиа-запросы. Я не предлагаю пытаться использовать медиа-запросы встроенными, поэтому вы захотите перенести свой CSS в ваш <head>
<html>
<head>
<meta name='viewport' content="width=device-width, initial-scale=1" />
<style>
.alignleft {align: left;}
.floatleft {float: left;}
.floatright {float: right;}
@media only screen and (min-resolution: 117dpi) and (max-resolution: 119dpi), only screen and (min-resolution: 131dpi) and (max-resolution: 133dpi), only screen and (min-resolution: 145dpi) and (max-resolution: 154dpi), only screen and (min-resolution: 162dpi) and (max-resolution: 164dpi), only screen and (min-resolution: 169dpi) {
.mobilebreak {display: block; float: left;}
}
</style>
</head>
<body>
<div class="alignleft">
<span class="floatleft">Receipt No:</span>
<span class="floatright mobilebreak">#1111</span>
</div>
</body>
</html>