Перейти к содержимому

CSS свойство flex-basis

Свойство flex-basis задаёт начальный основной размер гибкого элемента. Если это свойство не указано, его начальное значение равно auto.

Свойство flex-basis является одним из свойств CSS3.

Если гибких элементов нет, свойство flex-basis не окажет никакого влияния.

Когда flex-basis установлено в конкретную длину или процент, оно имеет приоритет над width (или height, если flex-direction равно column) при определении начального основного размера элемента.

Примечание: Сокращённое свойство flex устанавливает flex-basis вместе с flex-grow и flex-shrink. Если указано flex, оно имеет приоритет над отдельным свойством flex-basis.

Начальное значениеauto
Применяется кГибким элементам, включая псевдоэлементы в потоке.
НаследуетсяНет.
АнимацияДа. Элементы можно анимировать.
ВерсияCSS3
Синтаксис DOMobject.style.flexBasis = "100px";

Синтаксис

Синтаксис свойства CSS flex-basis

css
flex-basis: length | percentage | auto | initial | inherit | min-content | max-content | fit-content | content;

Базовый пример

Пример использования свойства CSS flex-basis

html
<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      .box {
        width: 300px;
        height: 80px;
        border: 1px solid #666;
        display: flex;
      }
      .box div {
        flex-grow: 0;
        flex-shrink: 0;
        flex-basis: 40px;
      }
      .box div:nth-of-type(2) {
        flex-basis: 140px;
      }
    </style>
  </head>
  <body>
    <h2>Flex-basis property example</h2>
    <div class="box">
      <div style="background-color: #eeeeee;">40px</div>
      <div style="background-color: #1c87c9;">140px</div>
      <div style="background-color: #8ebf42;">40px</div>
      <div style="background-color: #cccccc;">40px</div>
      <div style="background-color: #666666;">40px</div>
    </div>
  </body>
</html>

Результат

CSS flex-basis property

Пример со всеми значениями

Пример свойства flex-basis со всеми значениями:

html
<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      .box {
        height: 70px;
        display: flex;
      }
      .box div {
        flex-grow: 0;
        flex-shrink: 0;
        flex-basis: 60px;
        padding: 15px;
      }
      .box div:first-child {
        background-color: #40c3da;
      }
      .box div:nth-of-type(2) {
        flex-basis: 40%;
        background-color: lightgreen;
      }
      .box div:nth-of-type(3) {
        flex-basis: auto;
        background-color: yellow;
      }
      .box div:nth-of-type(4) {
        flex-basis: initial;
        background-color: orange;
      }
      .box div:nth-of-type(5) {
        flex-basis: inherit;
        background-color: pink;
      }
    </style>
  </head>
  <body>
    <h2>Flex-basis property example</h2>
    <div class="box">
      <div>
        number 60px
      </div>
      <div>
        percentage 40%
      </div>
      <div>
        auto
      </div>
      <div>
        initial
      </div>
      <div>
        inherit
      </div>
    </div>
  </body>
</html>

Пример со значениями в пикселях

Пример свойства flex-basis, заданного в пикселях:

html
<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      .box {
        width: 460px;
        height: 70px;
        display: flex;
      }
      .box div {
        flex-grow: 0;
        flex-shrink: 0;
        flex-basis: 70px;
        padding: 15px;
      }
      .box div:first-child {
        background-color: #40c3da;
      }
      .box div:nth-of-type(2) {
        flex-basis: 100px;
        background-color: lightgreen;
      }
      .box div:nth-of-type(3) {
        background-color: #1c87c9;
      }
      .box div:nth-of-type(4) {
        flex-basis: 150px;
        background-color: orange;
      }
      .box div:nth-of-type(5) {
        background-color: #8ebf42;
      }
    </style>
  </head>
  <body>
    <h2>Flex-basis property example</h2>
    <div class="box">
      <div>
        70px
      </div>
      <div>
        100px
      </div>
      <div>
        70px
      </div>
      <div>
        150px
      </div>
      <div>
        70px
      </div>
    </div>
  </body>
</html>

Значения

ЗначениеОписаниеЗапустить
length | percentageЗадаёт фиксированный размер с использованием единиц измерения, таких как px, em, rem, или процента (%).Запустить »
autoЗначение по умолчанию. Размер элемента определяется его содержимым или свойствами width/height.Запустить »
initialУстанавливает свойство в его значение по умолчанию.Запустить »
inheritНаследует это свойство от родительского элемента.
min-contentОпределяет размер элемента на основе минимальной ширины/высоты содержимого.Запустить »
max-contentОпределяет размер элемента на основе максимальной ширины/высоты содержимого.Запустить »
fit-contentОпределяет размер элемента на основе функции fit-content.Запустить »
contentОпределяет размер элемента на основе его содержимого.Запустить »

Практика

Что делает свойство 'flex-basis' в CSS?

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.