Как работают минимальный и максимальный контент?

Как значения min-content и max-content рассчитываются в CSS?

А что означает внутреннее измерение?

Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
101
0
50 058
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Примечание: «ширина» в этом тексте относится к «логической ширине», а не к CSS width; то есть значения также действительны для CSS height, если языковое направление вертикальное (например, восточно-азиатские языки) или в гибком блоке или сетке. min-content и max-content - допустимые значения для width, height, min-width, min-height, max-width, max-height и других свойств (например, flex-basis).

Каковы внутренние размеры коробки?

Уровень 3 в CSS представил концепцию размеров внутренний - противоположность внешний. Размер внешний бокса вычисляется по родительскому боксу. Например, width: 80% называется внешнее измерение, поскольку width субъекта зависит от width его содержащего бокса.

В противоположность этому, width: min-content называется внутренний, поскольку ширина блока рассчитывается на основе размера содержимого, которое содержит сам блок.

Размеры Внутренний - это свойства самого бокса, внешние размеры доступны только в том случае, если бокс помещен в документ и в контексте, который позволяет вычислять эти значения. Например, в CSS-потоке (классический режим макета CSS), как вы, наверное, знаете, height: 20% действует только в том случае, если height определен в родительском элементе (т.е. он наследуется); это случай измерения внешний, которое не поддается вычислению (когда внешнее значение недоступно, CSS возвращается к его внутреннему эквиваленту). Вместо этого height: min-content всегда можно вычислить, так как это внутренний для самого блока, и он всегда одинаков, независимо от размещения блока (или его отсутствия) в документе.


Определение min-content и max-content менялось много раз за эти годы, но результат всегда оставался неизменным, и его довольно легко понять. Изначально они были запрошены сообществом как ключевые слова для width, вычисленное значение которых будет соответствовать ширине поля, если поле имеет значение floating. И действительно, определение этих двух свойств изначально было основано на поведении float; теперь они более обобщенно определены следующим образом:

min-content

https://www.w3.org/TR/css-sizing-3/#min-content

The smallest size a box could take that doesn’t lead to overflow that could be avoided by choosing a larger size.

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

Фактически, хороший способ визуализировать это - использовать float.

/* the computed width of #red in this example 
   equals to specifying #red { width: min-content } */
#blue        { width: 0px; }
#blue > #red { float: left; }

min-content

(Источник GIF: http://jsfiddle.net/6srop4zu/)

В приведенном выше GIF минимальная ширина содержимого красного поля равно ширине красного поля в то время, когда ширина синего поля равна 0 пикселей (234 пикселя в GIF, может отличаться в jsfiddle).

Как вы можете видеть, если бы красный прямоугольник был уменьшен, слово supercalifragilisticexpialidocious переполнило бы красное поле, следовательно, в этом случае ширина min-content равна ширине этого конкретного слова, так как оно занимает больше всего места по горизонтали.

max-content

https://www.w3.org/TR/css-sizing-3/#max-content

A box’s “ideal” size in a given axis when given infinite available space. Usually this is the smallest size the box could take in that axis while still fitting around its contents, i.e. minimizing unfilled space while avoiding overflow.

/* the computed width of #red in this example
   equals to specifying #red { width: max-content } */

#blue        { width: 99999999999999999px; } /* ~infinite */
#blue > #red { float: left; }

max-content

(Источник GIF: http://jsfiddle.net/nktsrzvg/)

В приведенном выше GIF максимальная ширина содержимого красного блока равен ширине красного блока, когда ширина синего блока бесконечна (386 пикселей в GIF, может отличаться в jsfiddle).

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


А как насчет fit-content, stretch и других? Эти свойства в настоящее время пересматриваются, и поэтому они нестабильны (дата: июль 2018 г.). Они будут добавлены сюда, когда станут немного более зрелыми (надеюсь, скоро).

Очень четкое объяснение. И еще одно: как они сравниваются с auto? Есть ли между ними принципиальная разница в теории дизайна?

Jinghui Niu 03.01.2019 06:29

Авто приводит к разным результатам в зависимости от используемого макета. Например, поведение различается в зависимости от оси, если вы используете блок, гибкий бокс или сетку и т. д.

Wes 03.01.2019 14:30

@ Wes, а в документации написано, что auto тоже внутренний, определяется только по его содержимому?

Jinghui Niu 04.01.2019 15:42

ширина: авто не всегда присуще. Например, он рассчитывается по ширине внешнего блока (следовательно, внешней), если display: block

Wes 08.01.2019 15:31

Кажется, есть один случай, когда width: min-content действительно действует в соответствии со своей спецификацией: когда он содержит гибкие элементы с flex-shrink: 0. Я задокументировал свои выводы здесь.

cdauth 01.12.2020 02:56

мин-содержание:

Минимально возможная ширина, которую может иметь контент (группа слов). Это означает ширину самого большого слова в содержании.

Пример:

hi

this 

is

biggest-word-in-the-content

<------- min-content ------>

макс-контент:

Максимально возможная ширина, которую может иметь контент (группа слов). Это означает ширину содержимого, когда все слова расположены в одной строке.

Пример:

hi this is a content without considering any line breaks.

<---------------------- max-content ------------------->

Другие вопросы по теме