Float css что это

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

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

Что такое float?

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

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

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

Float css что это. Смотреть фото Float css что это. Смотреть картинку Float css что это. Картинка про Float css что это. Фото Float css что это

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

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

Float css что это. Смотреть фото Float css что это. Смотреть картинку Float css что это. Картинка про Float css что это. Фото Float css что это

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

Float css что это. Смотреть фото Float css что это. Смотреть картинку Float css что это. Картинка про Float css что это. Фото Float css что это

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

Float css что это. Смотреть фото Float css что это. Смотреть картинку Float css что это. Картинка про Float css что это. Фото Float css что это

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

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

Float css что это. Смотреть фото Float css что это. Смотреть картинку Float css что это. Картинка про Float css что это. Фото Float css что это

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

Float css что это. Смотреть фото Float css что это. Смотреть картинку Float css что это. Картинка про Float css что это. Фото Float css что это

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

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

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

Float css что это. Смотреть фото Float css что это. Смотреть картинку Float css что это. Картинка про Float css что это. Фото Float css что это

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

Float css что это. Смотреть фото Float css что это. Смотреть картинку Float css что это. Картинка про Float css что это. Фото Float css что это

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

Float css что это. Смотреть фото Float css что это. Смотреть картинку Float css что это. Картинка про Float css что это. Фото Float css что это

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

Float css что это. Смотреть фото Float css что это. Смотреть картинку Float css что это. Картинка про Float css что это. Фото Float css что это

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

Float css что это. Смотреть фото Float css что это. Смотреть картинку Float css что это. Картинка про Float css что это. Фото Float css что это

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

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

Float css что это. Смотреть фото Float css что это. Смотреть картинку Float css что это. Картинка про Float css что это. Фото Float css что это

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

Float css что это. Смотреть фото Float css что это. Смотреть картинку Float css что это. Картинка про Float css что это. Фото Float css что это

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

Float css что это. Смотреть фото Float css что это. Смотреть картинку Float css что это. Картинка про Float css что это. Фото Float css что это

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

Float css что это. Смотреть фото Float css что это. Смотреть картинку Float css что это. Картинка про Float css что это. Фото Float css что это

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

Float css что это. Смотреть фото Float css что это. Смотреть картинку Float css что это. Картинка про Float css что это. Фото Float css что это

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

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

Float css что это. Смотреть фото Float css что это. Смотреть картинку Float css что это. Картинка про Float css что это. Фото Float css что это

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

Float css что это. Смотреть фото Float css что это. Смотреть картинку Float css что это. Картинка про Float css что это. Фото Float css что это

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

Float css что это. Смотреть фото Float css что это. Смотреть картинку Float css что это. Картинка про Float css что это. Фото Float css что это

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

Float css что это. Смотреть фото Float css что это. Смотреть картинку Float css что это. Картинка про Float css что это. Фото Float css что это

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

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

Float css что это. Смотреть фото Float css что это. Смотреть картинку Float css что это. Картинка про Float css что это. Фото Float css что это

Девять правил 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 что это. Фото Float css что это

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

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

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

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

Блок с float

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

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

Источник

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

Float css что это. Смотреть фото Float css что это. Смотреть картинку Float css что это. Картинка про Float css что это. Фото Float css что это

Disclaimer

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

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

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

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

Float css что это. Смотреть фото Float css что это. Смотреть картинку Float css что это. Картинка про Float css что это. Фото Float css что это

Причина

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

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

Решение

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

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

Float css что это. Смотреть фото Float css что это. Смотреть картинку Float css что это. Картинка про Float css что это. Фото Float css что это

Причина

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

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

Решение

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

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

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

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

Источник

float

Summary

CSS-свойство float указывает, что текущий элемент должен быть изъят из обычного flow (потока) и прижат к левой или правой стороне родительского элемента. Текст и inline элементы будут обтекать такой элемент.

Начальное значениеnone
Применяется квсе элементы, но не будет эффекта, если display: none
Наследуетсянет
Обработка значениякак указано
Animation typediscrete

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

Syntax

Values

Formal syntax

Examples

HELLO!

How floats are positioned

As mentioned above, when an element is floated it is taken out of the normal flow of the document. It is shifted to the left or right until it touches the edge of it’s containing box or another floated element.

In the image below, there are three red squares. Two are floated left and one is floated right. Note that the second «left» red square is placed to the right of the first. Additional squares would continue to stack to the right until they filled the containing box, after which they would wrap to the next line.

Float css что это. Смотреть фото Float css что это. Смотреть картинку Float css что это. Картинка про Float css что это. Фото Float css что это

Clearing floats

In the example above, the floated elements are shorter vertically than the block of text they’re floated within. However, if the text was not long enough to wrap below the bottom of all the floats, we might see unanticipated effects. If the paragraph above, for instance, only read «Lorem ipsum dolor sit amet,» and was followed by another heading of the same style as the «Floats Example» heading, the second heading would appear between the red boxes. Most likely, we want the next heading to be aligned all the way to the left. To accomplish that, we’d need to clear the floats.

The simplest way to clear the floats in this example is to add the clear property to the new heading we want to be sure is aligned left:

However, this method only works if there are no other elements within the same block formatting context (en-US) that we do want the heading to continue to appear next to horizontally. If our H2 has siblings which are a sidebars floated to the left and right, using clear will force it to appear below both sidebars, which is probably not what we want.

If clearing floats on an element below them is not an option, another approach is to limit the block formatting context of the floats’ container. Referring to the example above again, it appears that all three red boxes are within a P element. We can set the overflow property on that P to hidden or auto to cause it to expand to contain them, but not allow them to drop out the bottom of it:

Источник

Float css что это

Float css что это. Смотреть фото Float css что это. Смотреть картинку Float css что это. Картинка про Float css что это. Фото Float css что это

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

Float css что это. Смотреть фото Float css что это. Смотреть картинку Float css что это. Картинка про Float css что это. Фото Float css что это

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

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

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

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

Float css что это. Смотреть фото Float css что это. Смотреть картинку Float css что это. Картинка про Float css что это. Фото Float css что это

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

Float css что это. Смотреть фото Float css что это. Смотреть картинку Float css что это. Картинка про Float css что это. Фото Float css что это

Float css что это. Смотреть фото Float css что это. Смотреть картинку Float css что это. Картинка про Float css что это. Фото Float css что это

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

Float css что это. Смотреть фото Float css что это. Смотреть картинку Float css что это. Картинка про Float css что это. Фото Float css что это

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

Float css что это. Смотреть фото Float css что это. Смотреть картинку Float css что это. Картинка про Float css что это. Фото Float css что это

Float css что это. Смотреть фото Float css что это. Смотреть картинку Float css что это. Картинка про Float css что это. Фото Float css что это

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

Float css что это. Смотреть фото Float css что это. Смотреть картинку Float css что это. Картинка про Float css что это. Фото Float css что это

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

Float css что это. Смотреть фото Float css что это. Смотреть картинку Float css что это. Картинка про Float css что это. Фото Float css что это

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

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

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

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

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

Float css что это. Смотреть фото Float css что это. Смотреть картинку Float css что это. Картинка про Float css что это. Фото Float css что это

Float css что это. Смотреть фото Float css что это. Смотреть картинку Float css что это. Картинка про Float css что это. Фото Float css что это

Проблемы с float

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

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

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

Источник

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

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