margin-trim
Ограниченная доступность
Эта функция не относится к Baseline, так как она не работает в некоторых из наиболее широко используемых браузеров.
Экспериментально: Это экспериментальная технология
Перед использованием в производственной среде тщательно проверьте таблицу совместимости браузеров.
Свойство margin-trim позволяет контейнеру обрезать отступы своих дочерних элементов, где они примыкают к краям контейнера.
Синтаксис
margin-trim: none; margin-trim: block; margin-trim: block-start; margin-trim: block-end; margin-trim: inline; margin-trim: inline-start; margin-trim: inline-end; /* Global values */ margin-trim: inherit; margin-trim: initial; margin-trim: revert; margin-trim: revert-layer; margin-trim: unset;
Значения
none-
Отступы не обрезаются контейнером.
block-
Отступы, предоставленные блочным дочерним элементам, где они примыкают к краям контейнера, обрезаются до нуля, без влияния на отступы, предоставленные контейнеру.
block-start-
Отступ первого блочного дочернего элемента с краем контейнера обрезается до нуля.
block-end-
Отступ последнего блочного дочернего элемента с краем контейнера обрезается до нуля.
inline-
Отступы, предоставленные инлайновым дочерним элементам, где они примыкают к краям контейнера, обрезаются до нуля, не влияя на интервалы в начале и конце строки.
inline-start-
Отступ между краем контейнера и первым инлайновым дочерним элементом обрезается до нуля.
inline-end-
Отступ между краем контейнера и последним инлайновым дочерним элементом обрезается до нуля.
Формальное определение
| Начальное значение | none |
|---|---|
| Применимо к | Блочным контейнерам и контейнерам с несколькими колонками. Также применяется к ::first-letter. |
| Наследуется | нет |
| Вычисленное значение | как указано |
| Тип анимации | дискретный |
Формальный синтаксис
Примеры
Базовое использование
После реализации поддержки этого свойства, оно, вероятно, будет работать следующим образом:
Когда у вас есть контейнер с некоторыми инлайновыми дочерними элементами, и вы хотите разместить отступ между каждым дочерним элементом, но не хотите, чтобы он влиял на интервалы в конце строки, вы можете сделать что-то вроде этого:
article {
background-color: red;
margin: 20px;
padding: 20px;
display: inline-block;
}
article > span {
background-color: black;
color: white;
text-align: center;
padding: 10px;
margin-right: 20px;
margin-left: 30px;
}
Проблема здесь в том, что у вас получится на 20px больше интервала справа в строке, поэтому вы, возможно, сделаете что-то вроде этого, чтобы исправить это:
span:last-child {
margin-right: 0;
margin-left: 0;
}
Это неудобно, нужно писать другое правило для достижения этого, а также оно не очень гибкое. Вместо этого margin-trim могло бы исправить это:
article {
margin-trim: inline-end;
/* … */
}
Аналогично, для удаления левого отступа с краем контейнера:
article {
margin-trim: inline-start;
/* … */
}
Спецификации
| Спецификация |
|---|
| CSS Box Model Module Level 4 # margin-trim |
Совместимость браузеров
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
margin-trim |
Нет | Нет | Нет | Нет | 16.4 | Нет | Нет | Нет | 16.4 | Нет | Нет |
block |
Нет | Нет | Нет | Нет | 16.4 | Нет | Нет | Нет | 16.4 | Нет | Нет |
block-end |
Нет | Нет | Нет | Нет | 16.4 | Нет | Нет | Нет | 16.4 | Нет | Нет |
block-start |
Нет | Нет | Нет | Нет | 16.4 | Нет | Нет | Нет | 16.4 | Нет | Нет |
inline |
Нет | Нет | Нет | Нет | 16.4 | Нет | Нет | Нет | 16.4 | Нет | Нет |
inline-end |
Нет | Нет | Нет | Нет | 16.4 | Нет | Нет | Нет | 16.4 | Нет | Нет |
inline-start |
Нет | Нет | Нет | Нет | 16.4 | Нет | Нет | Нет | 16.4 | Нет | Нет |
none |
Нет | Нет | Нет | Нет | 16.4 | Нет | Нет | Нет | 16.4 | Нет | Нет |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/margin-trim