Вам нужно очистить ваш float:
<div style="width:900px; background-color:#1EFF1E">
<p>outside</p>
<div style="float:left; width: 25%; background-color:#BD78C8">
<p>inside</p>
</div>
<div style="clear: left;"></div>
</div>
Плавающие элементы вырываются из макета, поэтому ваш div не учитывается элементами вокруг него.Свойство clear
css заставляет элемент перемещаться после последнего плавающего элемента, поэтому, когда вы помещаете пустой div под плавающим элементом, присваивая ему стиль clear
, внешний div растягивается, чтобы содержать его.