Воспроизвести эту проблему оказалось сложнее, чем ожидалось, поскольку она, похоже, зависит от браузера.
Версия, использующая абсолютное позиционирование, работает последовательно во всех браузеры:
- Tailwind Play #1 (с абсолютной вставкой-2)
- Tailwind Play #2 (с h-full)
Код: Выделить всё
function MacBookFrame() {
return (
{/* This works aspect ratio is maintained */}
)
}

Неработающая версия с h-full (соотношение сторон искажается на маленьких экранах)
Код: Выделить всё
function MacBookFrame() {
return (
{/* This breaks 👇 aspect ratio becomes distorted */}
)
}

Проблема
С абсолютной вставкой-2: MacBook поддерживает идеальное соотношение сторон 16:9 при всех размерах экрана.
В то время как с h-full: MacBook сохраняет свою высоту, нарушая соотношение 16:9.
Чего я не понимаю
В обоих случаях содержимое остается в черных границах, поэтому внешние размеры контейнера кажутся неизменными. Почему эти два метода позиционирования по-разному влияют на вычисление соотношения сторон?
Может ли кто-нибудь объяснить поведение CSS, лежащее в основе этой разницы?
Scaffold FakeContent
Код: Выделить всё
function FakeContent() {
return (
{/* fake content */}
)
}
- Реагировать с помощью Tailwind CSS
- Современные браузеры (Chrome, Firefox, Safari)
Подробнее здесь: https://stackoverflow.com/questions/798 ... h-absolute
Мобильная версия