Когда я первому блоку поставил свойство float: left то он как и должен прижался к левой стороне и текст снизу поднялся на свободное место справа вот
А когда я поставил float: right 2 блоку, то вместо того чтобы он прижался к правому боку а текст поднялся слево. блок 2 вообще никак не изменился, а текст просто поднялся немного выше. В чем проблема и почему так ?
Не весь тот код, который видно в CSS, это ВЕСЬ код - кое-что спрятано для облегчения восприятия необходимых элементов и ориентировки. Флоатнутые блоки вырываются из общего потока и ужимаются под содержимое (если им не заданы явные параметры) - это .block1. Второму блоку явно задана ширина - поэтому и ничего внешне не происходит. Однако, как только обоим блокам задаётся ширина меньше (задание 3) - сразу видно, что блоки начинают на это реагировать.