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

Flex shrink css что это

  • автор:

flex — shrink

Если в контейнере не хватает места для расположения всех элементов без изменения размеров, то свойство flex — shrink указывает, в каких пропорциях элемент будет уменьшаться.

Свойство flex — shrink полностью противоположно свойству flex — grow .

Пример

Скопировать ссылку «Пример» Скопировано

 .container  display: flex;> .item  flex-shrink: 3;> .container  display: flex; > .item  flex-shrink: 3; >      

Как понять

Скопировать ссылку «Как понять» Скопировано

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

Как пишется

Скопировать ссылку «Как пишется» Скопировано

Значение по умолчанию — 1. Значением может быть любое целое положительное число (включая 0).

Подсказки

Скопировать ссылку «Подсказки» Скопировано

�� Свойство работает с пропорциональным разделением пространства, не с конкретными размерами элементов. Разобраться во всём поможет статья «Как реально работает flex — shrink ».

Полный список свойств флексбоксов можно посмотреть в гайде по flexbox.

  • Chrome 59, поддерживается 59
  • Edge 79, поддерживается 79
  • Firefox 81, поддерживается 81
  • Safari 11, поддерживается 11

На практике

Скопировать ссылку «На практике» Скопировано

Алёна Батицкая советует

Скопировать ссылку «Алёна Батицкая советует» Скопировано

�� Чаще всего в работе используется flex — shrink : 0 . Это нужно чтобы элементы не сжимались, игнорируя заданные размеры.

flex-shrink

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2020 .

flex-shrink — свойство CSS, которое определяет фактор сжатия flex-элемента. Flex-элементы будут заполнять контейнер в зависимости от значения flex-shrink , когда стандартная ширина flex-элементов шире, чем flex-контейнер.

flex-shrink используется вместе со свойствами flex flex-grow и flex-basis . Обычно определяется с помощью сокращения flex .

Интерактивный пример

Синтаксис

/* значения */ flex-shrink: 2; flex-shrink: 0.6; /* Глобальные значения */ flex-shrink: inherit; flex-shrink: initial; flex-shrink: unset; 

flex-shrink свойство определятся одним .

Значения

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

flex-shrink =

Пример

HTML

p>Ширина контента 500px; flex-basis для flex элементов 120px.p> p>A, B, C имеют flex-shrink:1 значение. А у D и E - flex-shrink:2p> p>Ширина D и E меньше других.p> div id="content"> div class="box" style="background-color:red;">Adiv> div class="box" style="background-color:lightblue;">Bdiv> div class="box" style="background-color:yellow;">Cdiv> div class="box1" style="background-color:brown;">Ddiv> div class="box1" style="background-color:lightgreen;">Ediv> div> 

CSS

#content  display: flex; width: 500px; > #content div  flex-basis: 120px; border: 3px solid rgba(0, 0, 0, 0.2); > .box  flex-shrink: 1; > .box1  flex-shrink: 2; > 

Результат

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

Specification
CSS Flexible Box Layout Module Level 1
# flex-shrink-property

flex-shrink¶

Свойство flex-shrink устанавливает коэффициент сжатия флексов в контейнере и задаёт, насколько элемент будет уменьшаться по отношению к другим флексам, чтобы разместить все элементы в одну строку.

Демо¶

Flexbox и выравнивание

Синтаксис¶

1 2 3 4 5 6 7
flex-shrink: 2; flex-shrink: 0.6; /* Global values */ flex-shrink: inherit; flex-shrink: initial; flex-shrink: unset; 

Значения¶

Значение по-умолчанию: 1

Применяется к флекс-элементам

Принимаются целые числа. Отрицательные значения игнорируются.

Примечание¶

Safari до версии 9 поддерживает свойство -webkit-flex-shrink .

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

Поддержка браузерами¶

Can I Use flexbox? Data on support for the flexbox feature across the major browsers from caniuse.com.

Описание и примеры¶

HTML Результат

 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
 html> head> meta charset="utf-8" /> title>flex-shrinktitle> style> .flex-container  display: flex; > .flex1  flex-shrink: 3; margin-right: 2rem; > .flex1 img  width: 100%; > .flex2  flex-shrink: 2; > style> head> body> div class="flex-container"> div class="flex-item flex1"> img src="aquaria.jpg" alt="" /> div> div class="flex-item flex2"> Понравились готовые инсталляции, некоторые даже без рыбок смотрятся так, что хочется фотографию на рабочий стол поставить и любоваться. div> div> body> html> 

Понравились готовые инсталляции, некоторые даже без рыбок смотрятся так, что хочется фотографию на рабочий стол поставить и любоваться.

См. также¶

Свойство flex-shrink

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

Существует вероятность переполнения содержимого контейнера flexbox, если для него не задан flex-wrap: wrap;

 .example-1 < display: flex; outline: 2px dashed #ccc; >.example-1-item < padding: 5px; margin: 2px; background: #8ee391; >.shrink-0 
текст текст текст

текст текст
flex-shrink: 1;

Элемент будет сжиматься при необходимости

 .example-2 < display: flex; outline: 2px dashed #ccc; >.example-2-item 

текст текст текст текст текст текст
текст текст текст текст текст текст
текст текст текст текст текст текст
flex-shrink: 2;

Значение flex-shrink является относительным, его поведение зависит от значения родственных элементов контейнера flexbox.

Если в контейнере находятся три элемента, один из них пытается занять много пространства, у второго flex-shrink: 1; а у третьего flex-shrink: 2; Необходимое, первому элементу, пространство будет взято от элемента с flex-shrink: 2; в два раза больше чем от элемента с flex-shrink: 1;

 .example-3 < display: flex; outline: 2px dashed #ccc; >.example-3-item < flex-shrink: 0; padding: 5px; margin: 2px; background: #8ee391; >.shrink-1 < flex-shrink: 1; >.shrink-2 
текст текст текст текст текст текст
текст текст текст текст текст текст

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

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