CSS fit-content() — розмір за вмістом із обмеженням


Опис

Функція fit-content() в CSS дозволяє визначати розмір елемента на основі його вмісту та заданих зовнішніх обмежень. Ця особливість є корисною у випадках, коли елемент повинен вміщати свій вміст, але при цьому не перевищувати вказані граничні значення.

Ось короткий приклад використання функції fit-content():

.container {
  width: fit-content(200px);
  height: fit-content(150px);
  background-color: lightblue;
}

У цьому випадку, контейнер, позначений класом .container, має властивості width і height, які використовують функцію fit-content() з обмеженнями 200 пікселів для ширини та 150 пікселів для висоти. Це означає, що контейнер автоматично займе мінімальний можливий розмір, що вміщує його вміст, але не перевищує вказаних обмежень. Фон контейнера встановлено світло-синім кольором для наглядності.

fit-content() може бути надзвичайно корисною, коли потрібно створити контейнер, який займає мінімальний можливий розмір, що вміщує його вміст, але не перевищує заданого обмеження. Ця функція зазвичай використовується разом з властивостями width або height, щоб встановити пропорційний розмір елемента.

автор: Bond

Загальний опис

автор: NagarD

Нотатка

Функція fit-content() часто використовується разом з іншими CSS властивостями, такими як grid-template-columns, grid-template-rows, flex-basis, тощо, для створення гнучкого макету, який адаптується до розміру вмісту.

автор: Bond
Нотатка

У функції fit-content() можна використовувати значення довжини або відсотка для задання максимальної ширини або висоти елемента. Наприклад, fit-content(50%) обмежить розмір елемента до половини ширини або висоти контейнера.

автор: Bond
Нотатка

Варто відзначити, що підтримка функції fit-content() може залежати від браузера і може бути обмежена на деяких платформах або версіях. Для докладнішої інформації про підтримку і сумісність функції fit-content() рекомендується перевірити секцію "Переглядачі".

автор: Bond

Синтаксис

fit-content(<length-percentage>);

Функція fit-content може отримувати єдине значення:

<length-percentage>

Довжина або відсоток, які вказують максимальну ширину або висоту елемента. Можна використовувати значення, такі як px, em, rem, vw, vh, vmin, vmax, відсотки, тощо. Це значення встановлює максимальну межу розміру елемента.

автор: Bond

Значення без задання: 0%

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE
57 52 10.1 44 16
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
57 57 52 10.3

Приклади

+ запропонувати свій приклад у пісочниці

Цей приклад демонструє, як використовуючи функцію fit-content() в поєднанні з CSS-сіткою, можна створити адаптивний макет сайту, де елементи змінюють свої розміри та розташування залежно від доступного простору.

HTML

<div id="description">
  <h2>Приклад 1: Динамічний макет сайту</h2>
  <p>Змінюй розмір вікна браузера, щоб побачити, як елементи адаптуються.</p>
  <p>Функція fit-content() забезпечує те, що ширина елемента .content автоматично адаптується до його вмісту, але не перевищує 80% доступного простору, що дозволяє контенту бути відображеним зручно та ефективно всередині макету сайту.</p>
</div>
<div id="result">
  <div class="grid">
    <div class="header">Заголовок</div>
    <div class="sidebar">Бічна панель</div>
    <div class="content">Контент</div>
    <div class="footer">Футер</div>
  </div>
</div>

CSS

#description {
  font-style: italic;
  text-align: left;
  line-height: 1.5;
  margin-bottom: 50px;
  padding: 12px 16px;
  background-color: #f7f7f7;
  border: 1px solid #ccc;
}

.grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  grid-template-rows: auto;
  grid-gap: 10px;
  background-color: #f0f0f0;
  padding: 20px;
}

.header,
.sidebar,
.content,
.footer {
  background-color: white;
  padding: 20px;
  border: 1px solid #ccc;
}

.header {
  grid-column: 1 / -1;
}

.sidebar {
  grid-row: 2 / span 2;
}

.footer {
  grid-column: 1 / -1;
}

.content {
  grid-column: 2 / -2;
  width: fit-content(80%);
  margin: 0 auto;
}
автор: Bond

Три ґріди з однаковим grid-template-columns: fit-content(150px) 1fr. Перша колонка звужується по вмісту, поки той коротший за 150px, потім упирається в межу — але довге нерозривне слово все одно її розсовує.

HTML

<div class="grid">
    <div class="a">коротко</div>
    <div class="b">друга колонка</div>
</div>

<div class="grid">
    <div class="a">кілька слів, які могли б зайняти набагато більше місця в рядку</div>
    <div class="b">друга колонка</div>
</div>

<div class="grid">
    <div class="a">Дуже_довге_нерозривне_слово</div>
    <div class="b">друга колонка</div>
</div>

CSS

body {
    font-family: sans-serif;
    font-size: 15px;
    line-height: 1.45;
    padding: 24px;
}

.grid {
    display: grid;
    grid-template-columns: fit-content(150px) 1fr;
    gap: 10px;
    width: 520px;
    margin-bottom: 14px;
}

.a {
    padding: 10px;
    background: #2f6f9f;
    color: #fff;
}

.b {
    padding: 10px;
    background: #e3e8ee;
}
автор: NagarD

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле веде сходинками (розділ → тип → сторінка), а хибний ключ підкреслить хвилею.
[[!sandbox/S0oh1hBm]] Живий приклад окремим рядком — саме вікно результату. Той самий ключ зі знаком !: наберіть [[! і дійдіть сходинками до потрібної сторінки, список покаже її приклади.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Правка
Зворотний зв'язок
Вхід