Я не уверен на 100%, что понимаю вопрос. Если вы действительно хотите, чтобы у того, что вы называете отдельные div , было изображение слева и текст справа, вы можете сделать это, переместив и фотографию и lat_art div left . Если вы действительно хотите, чтобы текст был справа и тек под рисунком, если он длиннее, не используйте 'lat_art' вообще .
Нет необходимости указывать высоту отдельных элементов Div или очищать поплавки на них, так как они по умолчанию будут падать один под другим (элементы являются блоками).
Вы тоже стали жертвой дивита - <span class="artist">ROCK ON</span>
Скорее всего, это может быть что-то более значимое, например <h5 class="artist">ROCK ON</h5>
, абзац или что-то еще, стилизованное соответственно.
IMG может быть так же легко:
<img src="Images/guitar.jpg" alt="guitar" class="photo"/>
вместо:
<div class="photo">
<img src="Images/guitar.jpg" alt="guitar"/>
</div>