Я знайшов спосіб зробити це за допомогою CSS, але ви повинні бути обережними, оскільки це може змінюватися залежно від потоку вашого власного веб-сайту. Я зробив це для того, щоб вставляти відео з постійним співвідношенням сторін у частину ширини рідини мого веб-сайту.
Скажіть, у вас є таке вбудоване відео:
<object>
<param ... /><param ... />...
<embed src="..." ...</embed>
</object>
Потім ви можете розмістити все це у розділі з класом "відео". Цей відео-клас, ймовірно, буде текучим елементом на вашому веб-сайті таким, що сам по собі він не має прямих обмежень по висоті, але коли ви зміните розмір браузера, він зміниться в ширину відповідно до потоку веб-сайту. Це був би елемент, в який ви, ймовірно, намагаєтеся отримати вбудоване відео, зберігаючи певне співвідношення сторін.
Для цього я поставив зображення перед вбудованим об'єктом у розділі "video" класу div.
!!! Важлива частина полягає в тому, що зображення має правильне співвідношення сторін, яке ви хочете зберегти. Крім того, переконайтеся, що розмір зображення НАЙКРАЩИЙ, як найменший, на який ви очікуєте, що відео (або все, що ви підтримуєте AR), має базуватися на вашому макеті. Це дозволить уникнути будь-яких потенційних проблем у вирішенні зображення, коли воно буде відсотковим. Наприклад, якщо ви хочете підтримувати співвідношення сторін 3: 2, не використовуйте зображення 3xx на 2px. Це може спрацювати за певних обставин, але я цього не перевіряв, і, мабуть, було б гарною ідеєю цього уникати.
Напевно, ви вже повинні мати мінімальну ширину, як ця визначена для текучих елементів вашого веб-сайту. Якщо ні, то добре це зробити, щоб уникнути відсікання елементів або перекриття, коли вікно браузера стає занадто малим. Краще мати смугу прокрутки в якийсь момент. Найменша за шириною веб-сторінка повинна отримати десь близько 600 пікселів (включаючи стовпці з фіксованою шириною), оскільки роздільна здатність екрана не менша, якщо ви не маєте стосунків із зручними для телефону сайтами. !!!
Я використовую абсолютно прозорий png, але я не думаю, що це має значення, якщо ви зробите це правильно. Подобається це:
<div class="video">
<img class="maintainaspectratio" src="maintainaspectratio.png" />
<object>
<param ... /><param ... />...
<embed src="..." ...</embed>
</object>
</div>
Тепер ви маєте змогу додати CSS, подібний до наступного:
div.video { ...; position: relative; }
div.video img.maintainaspectratio { width: 100%; }
div.video object { position: absolute; top: 0px; left: 0px; width: 100%; height: 100%; }
div.video embed {width: 100%; height: 100%; }
Переконайтесь, що ви також видалили будь-яку явну декларацію висоти чи ширини в межах об’єкта та вбудували теги, які зазвичай поставляються із кодом вставлення / вставлення.
Спосіб роботи залежить від позиційних властивостей елемента відеокласу та потрібного елемента підтримувати певне співвідношення сторін. Скористається тим, як зображення підтримуватиме належне співвідношення сторін при зміні розміру в елементі. Він говорить, що все, що є в елементі відеокласу, максимально використовувати переваги нерухомості, наданої динамічним зображенням, примушуючи його ширину / висоту до 100% від елементу відеокласу, що регулюється зображенням.
Досить круто, так?
Вам, можливо, доведеться трохи пограти з цим, щоб змусити його працювати з власним дизайном, але це насправді працює для мене напрочуд добре. Загальна концепція є.