Сохранение соотношения сторон элемента SWFObject DOM

#html #css #flash #aspect-ratio

#HTML #css #flash #соотношение сторон

Вопрос:

Есть ли способ сохранить соотношение сторон в адаптивном flash SWFObject?

SWFObject автоматически изменяет размер сцены в соответствии с размером экрана, если экран меньше DOM-элемента. Это может вызвать некоторые визуальные проблемы, если беспорядочный флэш-файл содержит элементы, которые не должны быть видны за пределами сцены (см. Здесь ). Чтобы предотвратить это, я передаю масштаб параметра со значением exactfit.(подробнее читайте здесь)

Однако теперь flash потеряет соотношение сторон и станет искаженным. Если элемент dom сохранит это соотношение, флэш-память не будет искажаться.

Есть ли способ заставить элемент object сохранить его соотношение сторон в dom. Решения CSS были бы хороши!

Вот пример того, как это происходит сейчас (обратите внимание, что оно выровнено по горизонтали и вертикали и должно оставаться таким):

http://jsfiddle.net/me2loveit2/ejbLp/13/

HTML

 <div class="overlay">
    <div class="helper1"></div>
    <div class="helper">
        <object class="swf" type="application/x-shockwave-flash" data="http://philipp.werminghausen.us/testing/twincle_test3.swf" id="replace" style="visibility: visible;">
            <param name="usemap" value="#maptest">
            <param name="wmode" value="transparent">
            <param name="scale" value="exactfit">
        </object>
    </div>
</div>
  

CSS

 .helper1 {
    height:50%;
    width:100%;
    margin-bottom:-240px;
    min-height: 240px;
}
.overlay {
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0px;
    left: 0px;
    cursor: pointer;
    background-color: rgba(0, 0, 0, 0.5);
}
.helper {
    max-width: 550px;
    max-height: 480px;
    height:100%;
    width:100%;
    margin: 0 auto;
}
.swf {
    max-width: 550px;
    max-height: 480px;
    width: 100%;
    height: 100%;
    background-color:black;
}
  

Комментарии:

1. Попробуйте использовать vh и vw. Я немного поиграл и добился сохранения соотношения сторон. Вот что это такое mdn.beonex.com/en/CSS/length.html а вот и поддержка браузера caniuse.com/viewport-units

2. Это выглядит интересно, но я должен поддерживать IE8

3. В любом случае мне было любопытно, я реализовал это, и это работает, с парой новых ошибок, связанных с выравниванием. но соотношение исправлено! Хотелось бы, чтобы это было совместимо с IE8. вот как это looks:jsfiddle.net/me2loveit2/ejbLp/18

4. Я считаю, что это самый простой способ. Другие предполагают использование JS / jQuery. [оффтопик] Не поддерживает IE8. Поддержка старых браузеров — это атавизм, теперь браузеры — это полнофункциональная программа, и ответственность за ее обновление лежит на пользователе. Как, например, обновление всех других программ — FileZilla, Sublime, Atom или игровых патчей. Хотите использовать новые функции — заставьте пользователей устанавливать новое программное обеспечение [/ offtopic]

5. К сожалению, у меня нет выбора в отношении IE8. Я подумываю об использовании этого в любом случае и создании резервного решения js для неподдерживаемых браузеров. Мне удалось исправить еще несколько ошибок: jsfiddle.net/me2loveit2/ejbLp/23 Единственная оставшаяся проблема заключается в том, что он по-прежнему выглядит в соответствии с соотношением сторон, когда ширина или высота невелики. Есть идеи по этому поводу?