В Popper.js параметр padding отвечает
за отступ между элементом-поппером и границами его контекста или
привязанного элемента. Он позволяет управлять пространством вокруг
всплывающих элементов, предотвращая их наложение на другие элементы
страницы и обеспечивая более аккуратное позиционирование.
Popper.js поддерживает несколько форматов задания
padding:
Число Если передано одно число, оно применяется одинаково ко всем сторонам.
const popper = createPopper(referenceElement, popperElement, {
modifiers: [
{
name: 'preventOverflow',
options: {
padding: 8
}
}
]
});
Здесь 8 пикселей добавляется ко всем сторонам: сверху,
снизу, слева и справа.
Объект с конкретными сторонами Позволяет задавать отступы индивидуально для каждой стороны:
const popper = createPopper(referenceElement, popperElement, {
modifiers: [
{
name: 'preventOverflow',
options: {
padding: {
top: 10,
right: 15,
bottom: 10,
left: 5
}
}
}
]
});
В данном случае верхний и нижний отступ составляют 10px, правый — 15px, левый — 5px.
preventOverflowМодификатор preventOverflow отвечает за
предотвращение выхода поппера за пределы контейнера или окна браузера.
Параметр padding расширяет «зону безопасности», в пределах
которой поппер может двигаться:
const popper = createPopper(referenceElement, popperElement, {
modifiers: [
{
name: 'preventOverflow',
options: {
padding: 20
}
}
]
});
В этом примере поппер не сможет приблизиться к краю окна ближе, чем на 20px.
flipМодификатор flip позволяет попперу
автоматически менять позицию при недостатке места. Параметр
padding влияет и на него:
const popper = createPopper(referenceElement, popperElement, {
placement: 'top',
modifiers: [
{
name: 'flip',
options: {
padding: { top: 10, bottom: 10, left: 5, right: 5 }
}
}
]
});
Комбинация с tether При включенном
tether (модификатор preventOverflow с
tether: true) padding определяет минимальное расстояние
поппера от целевого элемента и границ.
Единицы измерения Popper.js работает только с числами, которые интерпретируются как пиксели. Проценты или rem/em не поддерживаются напрямую.
Наследуемость padding Модификатор
preventOverflow с заданным padding применяется только к
ограничению позиции. Он не влияет на внутренние отступы
popper-контента.
offset – задает смещение поппера
относительно reference element. Padding не заменяет offset, а работает
совместно, корректируя положение с учетом границ.arrow – для стрелки поппера padding
учитывается при расчете положения стрелки, чтобы она не «врезалась» в
границы окна.const popper = createPopper(referenceElement, popperElement, {
modifiers: [
{
name: 'arrow',
options: {
element: arrowElement
}
},
{
name: 'preventOverflow',
options: {
padding: { top: 8, right: 12, bottom: 8, left: 12 }
}
}
]
});
В этом случае стрелка правильно позиционируется внутри отступов, обеспечивая корректную визуальную привязку к reference element.