Почему перенос строк в коде влияет на вид страницы?
button и input имеют по умолчанию display: inline-block, таким образом ведут себя на странице отчасти как обычный текст, следовательно:
слитныйтекст
раздельный текст
Потому что пробелы и переносы строк это тоже символы и они считаются. Документу же надо где-то хранить информацию что "тут 2 пробела а тут перенос строки" вот он и хранит её :)