что такое float в css

Float’омания: разъяснение как работает css свойство float

что такое float в css. image loader. что такое float в css фото. что такое float в css-image loader. картинка что такое float в css. картинка image loader.

Disclaimer

Я не профессиональный верстальщик, хотя по роду моей деятельности мне пришлось сверстать не один десяток сайтов. У меня есть друзья, которые учатся верстать и я им хочу помочь. Скорее всего они есть и у вас. Цель этой статьи не рассказать что-то новое, а рассказать о старом с точки зрения наиболее часто возникающих у начинающих верстальщиков проблем. Я не претендую на абсолютную истину своих слов, и я буду только рад, если вы меня поправите и дополните.

Свойства элемента с float, которые нужно всегда держать в голове

Жизненный случай #1

У меня есть два блока, я применил к одному из блоков float: right, он выровнялся по правому краю, но все равно остался под первым. Пример как это выглядит.

что такое float в css. image loader. что такое float в css фото. что такое float в css-image loader. картинка что такое float в css. картинка image loader.

Причина

Если так произошло, значит, вы применили float не к первому, а ко второму блоку. В силу того, что плавающий (тот, который с float) элемент обтекают только те элементы, которые идут в HTML коде после него, первый блок его обтекать не будет.

Так же блочные элементы по умолчанию имеют максимально возможную ширину (пруф) в пределах родителя. Ваш плавающий элемент просто не помещается на одной линии с первым блочными элементами с максимальной шириной, поэтому он вытесняется вниз.

Решение

Жизненный случай #2

У меня два блока в header/content/footer. Одному я сделал float: left, другому float: right. Но после этого все содержимое сайта поплыло.

что такое float в css. image loader. что такое float в css фото. что такое float в css-image loader. картинка что такое float в css. картинка image loader.

Причина

Блоки с float по умолчанию не влияют на высоту родителя, то есть если у вас есть некоторый контейнер, а в нем находятся только плавающие блоки, то высота контейнера станет равна нулю. Пример как это выглядит.

Так же всё содержимое сайта, которое идет в HTML коде после плавающих элементов, обтекает их, что часто приводит к неожиданному эффекту.

Решение

Решение #1. Явно задать высоту контейнера. В тех случаях, когда известно какими должны быть размеры контейнера, это самое простое решение.

Решение #2. Добавить пустой блок с clear: both. Добавление подобного элемента отчищает «плавучесть» блоков и заставляет контейнер растягиваться на всю высоту. Семантически это не самое лучшее решение, так как вводит лишний элемент разметки.

Решение #3. Применить свойство overflow: auto (или hidden) к контейнеру. Заставляет контейнер заново рассчитать высоту и изменить ее так, чтобы включать плавающие элементы, иначе ему бы пришлось добавить полосу прокрутки или скрыть их. Впрочем, иногда это случается, поэтому будьте осторожны.

UPD
Так же читайте интересную статью от SelenIT2 как продолжение обсуждения свойства float.

Источник

Подробно о свойстве float

Правильное использование CSS свойства float может стать непростой задачей даже для опытного верстальщика. В этой статье собраны варианты применения float, а также некоторые ошибки, с наглядными примерами.
что такое float в css. eb878d19febb6064b670cbffa380d639. что такое float в css фото. что такое float в css-eb878d19febb6064b670cbffa380d639. картинка что такое float в css. картинка eb878d19febb6064b670cbffa380d639.

Что такое float?

Некоторые элементы в CSS являются блочными и поэтому начинаются с новой строки. Например, если расположить два абзаца с тегами P, то они будут находиться друг под другом. Другие же элементы являются «строчными», т.е. отображаются на странице в одну строку.

Один из способов переназначить элементам тип обтекания — это использование свойства float. Классический пример — использование float для выравнивания картинки по левому или правому краю. Вот простой HTML-код картинки и абзаца:

Они отображаются с новой строки:

что такое float в css. f8500de487f6653d513b712c1d83e37c. что такое float в css фото. что такое float в css-f8500de487f6653d513b712c1d83e37c. картинка что такое float в css. картинка f8500de487f6653d513b712c1d83e37c.

Добавляем немного CSS картинке:

Получается выравнивание по правому краю:

что такое float в css. b23197523078ce45ba0247e984556ded. что такое float в css фото. что такое float в css-b23197523078ce45ba0247e984556ded. картинка что такое float в css. картинка b23197523078ce45ba0247e984556ded.

Если текста больше, то абзац будет обтекать картинку:

что такое float в css. 7853875995c91e1ef348f5091b37335f. что такое float в css фото. что такое float в css-7853875995c91e1ef348f5091b37335f. картинка что такое float в css. картинка 7853875995c91e1ef348f5091b37335f.

Допустим, нам нужно сделать отступ в 20 пикселей между картинкой и текстом. Вот такая конструкция работать не будет:

что такое float в css. 2144ba27498d56329a262d1dc595ac2e. что такое float в css фото. что такое float в css-2144ba27498d56329a262d1dc595ac2e. картинка что такое float в css. картинка 2144ba27498d56329a262d1dc595ac2e.

Почему же не работает отступ для абзаца? Чтобы разобраться, добавим рамку:

Результат может вас удивить:

что такое float в css. 05a3e7cb97b9f55ef39a7e7213611f37. что такое float в css фото. что такое float в css-05a3e7cb97b9f55ef39a7e7213611f37. картинка что такое float в css. картинка 05a3e7cb97b9f55ef39a7e7213611f37.

Оказывается, картинка находится внутри абзаца! Поэтому и не работает свойство margin в первом случае. Чтобы исправить это, можно применить float:left к абзацу и указываем абсолютную ширину:

что такое float в css. 6dfdd4cada9a698eed114875c1d914c3. что такое float в css фото. что такое float в css-6dfdd4cada9a698eed114875c1d914c3. картинка что такое float в css. картинка 6dfdd4cada9a698eed114875c1d914c3.

Странные правила float

Перейдем к более сложным вариантам использования float: к правилам, регулирующим плавающие объекты. Это бывает необходимо при верстке галереи изображений. Например:

По умолчанию каждый элемент списка появится с новой строки. Если применить к каждому float:left, изображения встанут в один ряд с переносом строки:

что такое float в css. 8b12f66ff896d435721db2cca1b7a0d1. что такое float в css фото. что такое float в css-8b12f66ff896d435721db2cca1b7a0d1. картинка что такое float в css. картинка 8b12f66ff896d435721db2cca1b7a0d1.

Но что, если изображения разной высоты?

что такое float в css. f1e887b8587754ea4941844667d89bbd. что такое float в css фото. что такое float в css-f1e887b8587754ea4941844667d89bbd. картинка что такое float в css. картинка f1e887b8587754ea4941844667d89bbd.

Если мы добавим элементам списка отображение в одну строку, получится немного симпатичнее:

что такое float в css. 6d67d7c76d7930f89b8aae3da17d1296. что такое float в css фото. что такое float в css-6d67d7c76d7930f89b8aae3da17d1296. картинка что такое float в css. картинка 6d67d7c76d7930f89b8aae3da17d1296.

А теперь выравниваем по вертикали:

что такое float в css. 6db97d3cb9c0c9e62558f66300c752be. что такое float в css фото. что такое float в css-6db97d3cb9c0c9e62558f66300c752be. картинка что такое float в css. картинка 6db97d3cb9c0c9e62558f66300c752be.

Следует помнить, что в случае большей высоты картинок, остальные изображения обтекают только одно предыдущее, например:

что такое float в css. 69d840508244103fe5b45ae54678c3b0. что такое float в css фото. что такое float в css-69d840508244103fe5b45ae54678c3b0. картинка что такое float в css. картинка 69d840508244103fe5b45ae54678c3b0.

Пример изменения очередности элементов — например, у нас есть список элементов по порядку:

Если мы хотим расположить их в обратном порядке, просто применяем float:right вместо float:left, и не придется менять порядок в HTML:

что такое float в css. 3929c53db90ae128ca5dbb88c49eaf34. что такое float в css фото. что такое float в css-3929c53db90ae128ca5dbb88c49eaf34. картинка что такое float в css. картинка 3929c53db90ae128ca5dbb88c49eaf34.

С помощью float удобно группировать элементы на странице, но большой проблемой становится то, что последующие элементы (текст или блок) также получают свойство обтекания. Например, у нас есть блок картинок:

что такое float в css. a10c8dc2fd1c883124610feb1b7cf90e. что такое float в css фото. что такое float в css-a10c8dc2fd1c883124610feb1b7cf90e. картинка что такое float в css. картинка a10c8dc2fd1c883124610feb1b7cf90e.

Текст под ним начинает обтекать весь блок:

что такое float в css. d7c4941e844b42bc55cbe6bbfe23a453. что такое float в css фото. что такое float в css-d7c4941e844b42bc55cbe6bbfe23a453. картинка что такое float в css. картинка d7c4941e844b42bc55cbe6bbfe23a453.

Чтобы избежать этого, необходимо использовать свойство clear. Если применим его ко второму изображению:

что такое float в css. de420d12556e2ae176fac18319c79f7f. что такое float в css фото. что такое float в css-de420d12556e2ae176fac18319c79f7f. картинка что такое float в css. картинка de420d12556e2ae176fac18319c79f7f.

В этом случае остальные изображения продолжают наследовать float:left. Соответсвенно текст будет отображаться коряво:

что такое float в css. eb878d19febb6064b670cbffa380d639. что такое float в css фото. что такое float в css-eb878d19febb6064b670cbffa380d639. картинка что такое float в css. картинка eb878d19febb6064b670cbffa380d639.

Нужно применить clear:both к абзацу:

Наша проблема решена:

что такое float в css. b0a64269288e169ef715f48945e16bdd. что такое float в css фото. что такое float в css-b0a64269288e169ef715f48945e16bdd. картинка что такое float в css. картинка b0a64269288e169ef715f48945e16bdd.

Теперь предположим, что нам необходимо установить фон для галереи из предыдущих примеров. Если бы элементы были не плавающими, то получилось бы вот, что:

что такое float в css. 11291750039280e3005fea1abd2ab131. что такое float в css фото. что такое float в css-11291750039280e3005fea1abd2ab131. картинка что такое float в css. картинка 11291750039280e3005fea1abd2ab131.

Но если элементам списка применить float:left, фон совсем пропадает:

что такое float в css. a10c8dc2fd1c883124610feb1b7cf90e. что такое float в css фото. что такое float в css-a10c8dc2fd1c883124610feb1b7cf90e. картинка что такое float в css. картинка a10c8dc2fd1c883124610feb1b7cf90e.

Если мы сначала устанавливаем высоту для UL:

что такое float в css. 0819bef7da0c0d81048a37043aaae08f. что такое float в css фото. что такое float в css-0819bef7da0c0d81048a37043aaae08f. картинка что такое float в css. картинка 0819bef7da0c0d81048a37043aaae08f.

Это тоже не решает проблему, т.к. размеры фона заданы абсолютно. Нам поможет класс clearfix, который будет применен к div на том же уровне, что и элементы UL.

Существует еще одно решение, с использованием overflow:

что такое float в css. 2bd53752daf504951c83d7e06ee4d145. что такое float в css фото. что такое float в css-2bd53752daf504951c83d7e06ee4d145. картинка что такое float в css. картинка 2bd53752daf504951c83d7e06ee4d145.

Девять правил float-элементов:

Источник

Что такое float в css

что такое float в css. print layout. что такое float в css фото. что такое float в css-print layout. картинка что такое float в css. картинка print layout.

В программах для вёрстки страниц, элементы с текстом, могут учитывать изображения, а также и игнорировать их. В случае если они будут проигнорированы, текст будет отображаться над картинками, как будто их и нет. Это главная разница между тем, являются ли изображения частью основного потока страницы, или нет. Веб-дизайн очень похож.

что такое float в css. web text wrap. что такое float в css фото. что такое float в css-web text wrap. картинка что такое float в css. картинка web text wrap.

В веб-дизайне, элементы страницы с установленным свойством float, ведут себя точно также как и изображения в полиграфии, когда текст «обтекает» их. Такие элементы являются частью основного потока веб-страницы. Однако всё обстоит иначе, если элементы используют абсолютное позиционирование. Абсолютно позиционированные элементы удаляются из основного потока страницы, подобно примеру выше, когда в полиграфии текст игнорирует изображения. Такие элементы не влияют на позицию остальных элементов, соприкасаются они или нет.

Установка свойства float происходит следующим образом:

Для чего можно использовать float?

Помимо обтекания текстом изображений, float может использоваться для создания макета всего сайта.

что такое float в css. web layout. что такое float в css фото. что такое float в css-web layout. картинка что такое float в css. картинка web layout.

Свойство float также полезно и в меньших масштабах. Для примера рассмотрим маленькую область на странице сайта. Допустим вы используете float для аватара, при изменении размера изображения, размер текста будет подогнан в соответствии с изображением.

что такое float в css. reflow example 1. что такое float в css фото. что такое float в css-reflow example 1. картинка что такое float в css. картинка reflow example 1.

что такое float в css. reflow example 2. что такое float в css фото. что такое float в css-reflow example 2. картинка что такое float в css. картинка reflow example 2.

Отмена свойства float

что такое float в css. unclearedfooter. что такое float в css фото. что такое float в css-unclearedfooter. картинка что такое float в css. картинка unclearedfooter.

В примере, сайд-бар прижат к правому краю (float: right;), а его высота меньше, чем область основного контента. Поэтому footer будет поднят выше, поскольку для него хватает высоты и этого требует поведение float. Чтобы исправить ситуацию, ему необходимо установить свойство clear, которое гарантирует, что элемент выведется ниже float-элементов.

что такое float в css. clearedfooter. что такое float в css фото. что такое float в css-clearedfooter. картинка что такое float в css. картинка clearedfooter.

что такое float в css. directionalclearing. что такое float в css фото. что такое float в css-directionalclearing. картинка что такое float в css. картинка directionalclearing.

Большой коллапс

что такое float в css. collapse. что такое float в css фото. что такое float в css-collapse. картинка что такое float в css. картинка collapse.

Такое схлопывание выглядит нелогичным, однако альтернатива ещё хуже. Рассмотрим такой пример:

что такое float в css. whywecollapse. что такое float в css фото. что такое float в css-whywecollapse. картинка что такое float в css. картинка whywecollapse.

Если блочный элемент, располагающийся наверху, будет автоматически увеличиваться, чтобы вместить все float-элементы, то мы получим неестественный разрыв в тексте между параграфами, без всякой возможности это исправить. Если бы было именно так, наши дизайнеры жаловались бы гораздо чаще такому поведению, чем схлопыванию.

Таким образом, схлопывание почти всегда необходимо, чтобы предотвратить трудности в вёрстке. Для того чтобы изменить такое поведение, необходимо добавить элемент отменяющий float после float-элементов, но до закрытия родительского элемента.

Способы отмены float

Если вам известно, что следом после float-элементов, всегда будет выводится какой-либо другой элемент (например футер), то вам достаточно ему установить свойство clear: both;, как в примере выше, и заниматься дальше своими делами. Это идеальный вариант, поскольку он не требует каких-либо хаков, или дополнительных элементов. Конечно не всё в нашей жизни так гладко и бывают случаи когда такого способа не достаточно. Поэтому необходимо иметь несколько дополнительных способов в своём арсенале.

И, как вы понимаете, каждый из способов используется в различных ситуациях. Возьмём, к примеру, сетку из блочных элементов, отличающихся типами.

что такое float в css. grid blocks. что такое float в css фото. что такое float в css-grid blocks. картинка что такое float в css. картинка grid blocks.

что такое float в css. grid blocks cleared. что такое float в css фото. что такое float в css-grid blocks cleared. картинка что такое float в css. картинка grid blocks cleared.

Проблемы с float

Float часто стараются обходить, поскольку работать с ними надо очень аккуратно. Большинство ошибок пришло вместе с IE6. Поскольку всё больше и больше веб-дизайнеров отказываются от поддержки IE6, то вас могут и не волновать эти проблемы. Но для тех, кому не всё равно, вот краткий список.

Альтернативы float

Если вам необходимо обтекание картинки текстом, то альтернатив нет. Но для макета страницы, определённо есть выбор. Существуют очень интересные подходы, в которых комбинируется гибкость float с мощью абсолютного позиционирования. В CSS3 есть, так называемый, Модуль разметки шаблона (Template Layout Module), который в будущем предоставит достойную альтернативу float.

Источник

Свойство float

Свойство float в CSS занимает особенное место. До его появления расположить два блока один слева от другого можно было лишь при помощи таблиц. Но в его работе есть ряд особенностей. Поэтому его иногда не любят, но при их понимании float станет вашим верным другом и помощником.

Как работает float

При применении этого свойства происходит следующее:

Исключением являются некоторые редкие display наподобие inline-table и run-in (см. Relationships between „display“, „position“, and „float“)

Вертикальные отступы margin элементов с float не сливаются с отступами соседей, в отличие от обычных блочных элементов.

Это пока только теория. Далее мы рассмотрим происходящее на примере.

Текст с картинками

Например, вот страница о Винни-Пухе с картинками, которым поставлено свойство float :

что такое float в css. . что такое float в css фото. что такое float в css-. картинка что такое float в css. картинка .

Её HTML-код выглядит примерно так:

Посмотрим, например, как выглядело бы начало текста без float:

При float:left – всё то же самое, только IMG смещается влево (или не смещается, если он и так у левого края), а строки – обтекают справа

Чтобы это увидеть, добавим параграфам фон и рамку, а также сделаем изображение немного прозрачным:

Блок с float

Свойство float можно поставить любому элементу, не обязательно картинке. При этом элемент станет блочным.

Посмотрим, как это работает, на конкретной задаче – сделать рамку с названием вокруг картинки с Винни.

Источник

Разбираем свойство float в CSS

Дата публикации: 2010-02-22

что такое float в css. 100. что такое float в css фото. что такое float в css-100. картинка что такое float в css. картинка 100.

Пару лет назад, когда разработчики впервые начали переходить к HTML-разметке без таблиц, CSS свойство float внезапно взяло на себя очень важную роль. Причина того, что свойство float стало так распространено, состояла в том, что по умолчанию, блочные элементы не выстраивались в линию рядом друг с другом в формате на основе столбца. Так как столбцы необходимы фактически в каждой схеме CSS, к этому свойству начали привыкать — и даже злоупотреблять им.

Свойство float в CSS, позволяет разработчику включать подобные таблице столбцы в разметку HTML без использования таблиц. Если бы не свойство float, то схемы размещения CSS не были бы возможны, кроме использования абсолютного и относительного позиционирования — которые были бы неаккуратными и сделали бы схему разметки неудобной в сопровождении.

В этой статье мы расскажем, что такое свойство float и как оно влияет на элементы в специфических контекстах. Мы также обратим внимание на некоторые из различий, которые могут возникнуть в связи с этим свойством в наиболее часто используемых браузерах. Наконец, мы продемонстрируем несколько практических применений свойства float. Это должно обеспечить также всестороннее и тщательное обсуждение этого свойства и его влияние на развитие CSS.

Определение и синтаксис CSS-свойства Float

Цель свойства float состоит в том, чтобы, вытолкнуть блочный элемент влево или вправо, взяв его из потока документа. Это позволяет естественным образом текущему информационному содержанию обвалакиваться вокруг плавающего элемента. Эта концепция является аналогичной той, которую вы видите каждый день в печатной литературе, где фотографии и другие графические элементы, выровненные по какой либо стороне, а информационное наполнение (обычно текст) течет естественно вокруг элемента выровненного вокруг левого или правого края.

что такое float в css. print. что такое float в css фото. что такое float в css-print. картинка что такое float в css. картинка print.

что такое float в css. vmaster. что такое float в css фото. что такое float в css-vmaster. картинка что такое float в css. картинка vmaster.

Практический курс по верстке адаптивного сайта с нуля!

Изучите курс и узнайте, как верстать современные сайты на HTML5 и CSS3

На изображении выше раздел “Читатели сайта ”.net magazine с 3-мя фотографиями читателей, которые выровнены по левому краю в своих столбцах с обертыванием текста вокруг изображений. Такова — основная идея, лежащая в основе свойства float в схемах размещения CSS, и она демонстрирует один из способов, который использован в табличном дизайне.

Эффективность использования float в многоколонной верстке была объяснена Douglas Bowman в 2004 в его классической презентации No More Tables:

что такое float в css. stopdesign float. что такое float в css фото. что такое float в css-stopdesign float. картинка что такое float в css. картинка stopdesign float.

Bowman объяснил принципы, лежащие в верстке без таблиц, используя старый сайт Microsoft в качестве образца. Float были заметно использованы в его ложной перестройке разметки Microsoft.

Синтаксис

Свойство Float может принимать одно из 4 значений: влево (left), вправо(right), без выравнивания (none) и наследованное (inherit). Это объявляется, как показано в коде ниже:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *