Spec-Zone.ru › CSS

Свойство CSS `float`

Базовая поддержка Широко доступно

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и во многих версиях браузеров. Она доступна во всех браузерах с июля 2015 года.

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

Попробуйте

float: none;
float: left;
float: right;
float: inline-start;
float: inline-end;
<section class="default-example" id="default-example">
  <div class="example-container">
    <div class="transition-all" id="example-element">Float me</div>
    As much mud in the streets as if the waters had but newly retired from the
    face of the earth, and it would not be wonderful to meet a Megalosaurus,
    forty feet long or so, waddling like an elephantine lizard up Holborn Hill.
  </div>
</section>
.example-container {
  border: 1px solid #c5c5c5;
  padding: 0.75em;
  text-align: left;
  width: 80%;
  line-height: normal;
}

#example-element {
  border: solid 10px #efac09;
  background-color: #040d46;
  color: white;
  padding: 1em;
  width: 40%;
}

Плавающий элемент — это элемент, вычисленное значение свойства которого float не равно none.

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

Заданное значение Вычисленное значение
inline block
inline-block block
inline-table table
table-row block
table-row-group block
table-column block
table-column-group block
table-cell block
table-caption block
table-header-group block
table-footer-group block
inline-flex flex
inline-grid grid
другое без изменений

Примечание: При обращении к свойству CSS в JavaScript через объект HTMLElement.style имена свойств из одного слова используются без изменений. Хотя float — зарезервированное слово в JavaScript, к свойству CSS float в современных браузерах обращаются как к float. В старых браузерах для доступа к свойству float необходимо использовать cssFloat. (Это похоже на то, как к атрибуту "class" обращаются как к "className", а к атрибуту "for" элемента <label> — как к "htmlFor".)

Синтаксис

/* Keyword values */
float: left;
float: right;
float: none;
float: inline-start;
float: inline-end;

/* Global values */
float: inherit;
float: initial;
float: revert;
float: revert-layer;
float: unset;

Значения

Это свойство задаётся одним из следующих ключевых слов:

left
Элемент должен располагаться у левого края содержащего блока.
right
Элемент должен располагаться у правого края содержащего блока.
none
Элемент не должен обтекаться.
inline-start
Элемент должен располагаться у начального края содержащего блока. Это левый край для ltr письменностей и правый край для rtl письменностей.
inline-end
Элемент должен располагаться у конечного края содержащего блока. Это правый край для ltr письменностей и левый край для rtl письменностей.

Формальное определение

Исходное значение none
Применяется к ко всем элементам, но не оказывает эффекта, если значение display равно <code>none</code>.
Наследуется нет
Вычисленное значение как задано
Тип анимации дискретный

Формальный синтаксис

float = 
  left |
  right |
  none |
  inline-start |
  inline-end

Примеры

Как позиционируются плавающие элементы

Как упоминалось выше, плавающий элемент исключается из нормального потока документа (но при этом остаётся его частью). Он сдвигается влево или вправо, пока не коснётся края содержащего блока или другого плавающего элемента.

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

Высота плавающего элемента не меньше высоты самого высокого из его вложенных плавающих дочерних элементов. Мы задали родительскому элементу width: 100% и расположили его слева, чтобы он был достаточно высоким для размещения плавающих дочерних элементов и занимал всю ширину родителя, благодаря чему нам не придётся очищать его соседний элемент.

HTML

<section>
  <div class="left">1</div>
  <div class="left">2</div>
  <div class="right">3</div>
  <p>
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi tristique
    sapien ac erat tincidunt, sit amet dignissim lectus vulputate. Donec id
    iaculis velit. Aliquam vel malesuada erat. Praesent non magna ac massa
    aliquet tincidunt vel in massa. Phasellus feugiat est vel leo finibus
    congue.
  </p>
</section>

CSS

section {
  box-sizing: border-box;
  border: 1px solid blue;
  width: 100%;
  float: left;
}

div {
  margin: 5px;
  width: 50px;
  height: 150px;
}

.left {
  float: left;
  background: pink;
}

.right {
  float: right;
  background: cyan;
}

Результат

Очистка обтекания

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

Спецификации

Спецификация
Каскадные таблицы стилей, уровень 2
# propdef-float
Модуль логических свойств и значений CSS, уровень 1
# float-clear

Совместимость с браузерами

Компьютеры Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome для Android Firefox для Android Opera для Android Safari на iOS Samsung Internet WebView для Android WebView на iOS
float
1
12
1
7
1
18
4
10.1
1
1.0
4.4
1
inline-end
118
118
55
104
15
118
55
79
15
25.0
118
15
inline-start
118
118
55
104
15
118
55
79
15
25.0
118
15
left
1
12
1
15
1
18
4
14
1
1.0
4.4
1
none
1
12
1
15
1
18
4
14
1
1.0
4.4
1
right
1
12
1
15
1
18
4
14
1
1.0
4.4
1

См. также

  • Контекст блочного форматирования
  • Используйте clear, чтобы принудительно переместить элемент ниже плавающего элемента.

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/float

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API