CSS border-shape — синтаксис и примеры
CSS-свойство border-shape: назначение, рабочее значение, влияние на раскладку или отрисовку, ошибки и поддержка браузерами.
«border-shape» отмечено как экспериментальное в MDN Browser Compatibility Data. Предусмотрите базовый вариант и протестируйте целевые браузеры.
Суть темы
Практический смысл «border-shape» связан с тем, чтобы управлять местом элемента в потоке, его контекстом или взаимным расположением блоков. Свойство border-shape относится к области «раскладка и позиционирование» и может создавать новый контекст форматирования, содержащий блок или уровень наложения. Контрольная проверка «border-shape» проходит на панели управления с асинхронным обновлением данных, а наблюдаемой точкой служит состояние при пустом содержимом.
Для «border-shape» сначала проверьте вычисленное значение border-shape, наследование и контекст родителя. После этого сравните исходное и изменённое состояние «border-shape» на одном и том же содержимом.
Синтаксис border-shape
Минимальная запись «border-shape» нужна для отделения самой возможности от стилей и разметки проекта. Проверьте фрагмент отдельно перед переносом.
.demo {
border-shape: 1px solid currentColor;
}Как работает border-shape
Механика «border-shape» начинается с допустимого контекста и заканчивается наблюдаемым результатом. Свойство border-shape относится к области «раскладка и позиционирование» и может создавать новый контекст форматирования, содержащий блок или уровень наложения; для «border-shape» отдельно проверьте состояние при пустом содержимом.
Проверка в проекте
- Проверьте вычисленное значение border-shape, наследование и контекст родителя; результат относится непосредственно к «border-shape».
- Сравнить дерево доступности до и после добавления конструкции при разборе «border-shape».
- Проверьте «border-shape» на панели управления с асинхронным обновлением данных через состояние при пустом содержимом и запишите наблюдаемое изменение.
Выбор «border-shape» оправдан, если задача относится к области «раскладка и позиционирование», а риск «изолированная декларация border-shape без связанных ограничений может дать другой результат в реальном компоненте» исключён проверкой. Для «border-shape» сравнивайте не внешний вид, а результат для пользователя.
Практика с border-shape
Перенесите «border-shape» в тестовом шаблоне и испытайте его на панели управления с асинхронным обновлением данных. Сначала воспроизведите правильный результат, затем намеренно добавьте риск для «border-shape»: изолированная декларация border-shape без связанных ограничений может дать другой результат в реальном компоненте.
Сценарий: на панели управления с асинхронным обновлением данных.
Ошибки при работе с border-shape
Доступность
Изолированная декларация border-shape без связанных ограничений может дать другой результат в реальном компоненте — это предметный риск для «border-shape».
Каскад
Зависимость результата от placeholder вместо постоянной подписи при использовании «border-shape».
Поддержка
Потеря содержимого при печати или отключении фоновых изображений; для «border-shape» проверьте это отдельно.
Поддержка border-shape
Для «border-shape» таблица собрана из закреплённой версии MDN Browser Compatibility Data. Указанная версия браузера показывает первое заявленное появление базовой поддержки «border-shape»; окончательное решение принимайте по аудитории конкретного проекта.
Спецификация: источник 1.
Вопросы о border-shape
Как понять, что «border-shape» выбрано правильно?
«border-shape» выбрано правильно, когда оно решает задачу «управлять местом элемента в потоке, его контекстом или взаимным расположением блоков», сохраняет результат на панели управления с асинхронным обновлением данных и проходит предметную проверку: проверьте вычисленное значение border-shape, наследование и контекст родителя.
Нужен ли запасной вариант для «border-shape»?
Для «border-shape» запасной вариант обязателен: возможность отмечена как экспериментальная. Сначала реализуйте базовое поведение «border-shape», затем подключайте улучшение после проверки поддержки.
Спецификации и источники
Синтаксис и статус проверяются по HTML Living Standard, спецификациям CSS и MDN Browser Compatibility Data. Примеры и объяснения подготовлены для этого сервиса.