Как и многие фронтенд-разработчики, которых я встречал в своей карьере, я разбираюсь в HTML, CSS и JavaScript на профессиональном уровне, но тонкости плавающих элементов CSS по-прежнему остаются моей ахиллесовой пятой.
Мой последний проект имеет простой макет, который выглядит как идеальный кандидат для улучшения моего понимания поплавков. Это тривиально для достижения с абсолютным позиционированием, но я хотел бы определить, могут ли поплавки выполнить то же самое.
Вот упрощенный макет желаемого макета:
Я создал пример JSBin в качестве хорошей отправной точки:
http://jsbin.com/UPUzUWU/1/edit?html,css,output
Я потратил около 20 минут, играя с тем, какие поля перемещаются, как они перемещаются, какие очищаются, как они очищаются и даже с порядком HTML. Я немного подобрался, но сигары нет.
Кто-нибудь может сделать эту работу, не прибегая к абсолютному позиционированию (при необходимости можно изменить порядок HTML)? Если да, можете ли вы также сделать все возможное, чтобы объяснить принципы, лежащие в основе этого?
Спасибо!
Изменить:
Извините, я должен был уточнить - хотя изменение порядка HTML для блоков в порядке, я бы не стал объединять несколько блоков в общие родительские элементы. Пожалуйста, предположим, что семантически все они будут содержать контент на одном уровне иерархии макета (т. е. все они являются семантическими братьями и сестрами), поэтому в идеале они не будут совместно использовать несемантические родительские элементы, которые существуют только для целей упрощения стиля. .
Кроме того, этот подход позволяет просто перемещать три элемента слева, что является слишком простым решением, чтобы пролить больше света на то, как работают плавающие элементы.