Растягивание фреймов в соответствии с шириной при сохранении соотношения высоты и ширины (тема Tumblr)

У меня проблема с создателем темы Tumblr Cutom. При добавлении, например, видеопоста, они помещают его в iframe с заданными шириной и высотой. Я могу сбросить с шириной iframe и видео будет соответственно растягиваться, но высота останется прежней (как и ожидалось).

Но когда я устанавливаю высоту на авто, она сжимается в маленький прямоугольник вместо того, чтобы предполагать его нормальное соотношение ширины и высоты (как я и думал). Есть ли способ заставить iframe сохранить установленное для него соотношение в iframe, но масштабировать его с помощью CSS? JQuery тоже хорошо, но CSS предпочтительнее.

HTML

<div class="video">
    {VideoEmbed} // tumblr replaces this with an iframe containing the video
</div>

CSS (не работает)

.video iframe {
    height: auto // not working (as in, not producing desired effect)
    width: 700px // working
}

1 ответ

Вы можете поддерживать соотношение, используя простой трюк с заполнением CSS. Вам нужно будет обернуть iframe в элемент контейнера и установить стили следующим образом:

/*span*/.iframe-wrapper {
 width: 50%;
 height: 0;
 padding: 40% 0 0;
 display: block;
 position: relative;
 border: 5px solid blue;
}

 
/*span*/.iframe-wrapper iframe {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    max-width: 100%;
    max-height: 100%;
}
<span class='iframe-wrapper'>
  <iframe width="560" height="315" src="https://www.youtube.com/embed/XdlmoLAbbiQ" frameborder="0" allowfullscreen></iframe>
</span>

По сути, вы устанавливаете желаемую ширину <iframe> быть, затем добавьте отступ к контейнеру, чтобы сохранить соотношение сторон.

Другие вопросы по тегам