Как я могу выровнять встроенное видео YouTube в центре в начальной загрузке
Я пытаюсь выровнять встроенное видео YouTube по центру страницы на странице начальной загрузки. Размер видео всегда одинаков.
Мой HTML выглядит очень просто:
<div class="video">
<iframe width="560" height="315" src="https://www.youtube.com/embed/ig3qHRVZRvM" frameborder="0" allowfullscreen=""></iframe>
</div>
Я пробовал разные решения от stackoverflow (который касался только центрирования div, а не видео), и лучшее, что я смог придумать, это эту скрипку.
Я уже пробовал решение1, решение2, решение3, но безрезультатно. Другое частично успешное решение заключалось в использовании:
width: 50%;
margin: 0 auto;
Он хорошо работал на настольном компьютере, но не работал на iPad или телефоне (видео частично выходило за пределы экрана). Как правильно центрировать видео на рабочем столе/планшете/телефоне?
Ответы
Ответ 1
Важно отметить / "Bootstrap" - это просто куча правил CSS
скрипка
HTML
<div class="your-centered-div">
<img src="http://placehold.it/1120x630&text=Pretend Video 560x315" alt="" />
</div>
CSS
/* key stuff */
.your-centered-div {
width: 560px; /* you have to have a size or this method doesn't work */
height: 315px; /* think about making these max-width instead - might give you some more responsiveness */
position: absolute; /* positions out of the flow, but according to the nearest parent */
top: 0; right: 0; /* confuse it i guess */
bottom: 0; left: 0;
margin: auto; /* make em equal */
}
Полностью работает jsFiddle здесь.
ИЗМЕНИТЬ
В основном я использую это в наши дни:
прямой CSS
.centered-thing {
position: absolute;
margin: auto;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
, если вы используете стилус /mixins (вы должны... это лучше всего)
center-center()
absolute()
margin auto
top 50%
left 50%
transform translate(-50%,-50%)
Таким образом... вам не нужно знать размер элемента - и перевод основан на его размере - Итак, -50% от себя. Ухоженная.
Ответ 2
Youtube использует iframe.
Вы можете просто установить его на:
iframe {
display: block;
margin: 0 auto;
}
Ответ 3
<iframe style="display: block; margin: auto;" width="560" height="315" src="https://www.youtube.com/embed/ig3qHRVZRvM" frameborder="0" allowfullscreen></iframe>
Ответ 4
Вам не нужно вставлять <iframe>
в родительский div. Вы можете настроить таргетинг именно на youtube iframe
с помощью CSS/3:
iframe[src*="//youtube.com/"], iframe[src*="//www.youtube.com/"] {
display: block;
margin: 0 auto;
}
Ответ 5
Я установил максимальную ширину для моего видео на 100%. На телефонах видео автоматически соответствует ширине экрана. Поскольку встроенное видео имеет ширину всего 560 пикселей, я просто добавил 10% левого поля в iframe и вернул "0" для поля для мобильного CSS (чтобы разрешить полное представление ширины). Я не хотел беспокоиться о размещении div вокруг каждого видео...
Рабочий стол CSS:
iframe {
margin-left: 10%;
}
Ответ 6
Использование Bootstrap, встроенного в класс .center-block
, который устанавливает маржи слева и справа на auto
:
<iframe class="center-block" width="560" height="315" src="https://www.youtube.com/embed/ig3qHRVZRvM" frameborder="0" allowfullscreen=""></iframe>
Или используя встроенный класс .text-center
, который устанавливает text-align: center
:
<div class="text-center">
<iframe width="560" height="315" src="https://www.youtube.com/embed/ig3qHRVZRvM" frameborder="0" allowfullscreen=""></iframe>
</div>
Ответ 7
<div>
<iframe id="myFrame" src="https://player.vimeo.com/video/12345678?autoplay=1" width="640" height="360" frameborder="0" allowfullscreen> .
</iframe>
</div>
<script>
function myFunction() {
var wscreen = window.innerWidth;
var hscreen = window.innerHeight;
document.getElementById("myFrame").width = wscreen ;
document.getElementById("myFrame").height = hscreen ;
}
myFunction();
window.addEventListener('resize', function(){ myFunction(); });
</script>
это работает на Vimeo добавление идентификатора myFrame
в iframe
Ответ 8
сделайте iframe с align = "middle" и поместите его в абзац с style = "text-aling: center":
<p style="text-align:center;">
<iframe width="420" height="315" align="middle" src="https://www.youtube.com/embed/YOURVIDEO">
</iframe>
</p>
Ответ 9
Для полностью адаптивного видео в формате IFramed на YouTube попробуйте следующее:
<div class="blogwidevideo">
<iframe width="854" height="480" style="margin: auto;" src="https://www.youtube-nocookie.com/embed/h5ag-3nnenc" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
.blogwidevideo {
overflow:hidden;
padding-bottom:56.25%;
position:relative;
height:0;
}
.blogwidevideo iframe {
left:10%; //centers for the 80% width - not needed if width is 100%
top:0;
height:80%; //change to 100% if going full width
width:80%;
position:absolute;
}
Ответ 10
<center><div class="video">
<iframe width="560" height="315" src="https://www.youtube.com/embed/ig3qHRVZRvM" frameborder="0" allowfullscreen=""></iframe>
</div></center>
Кажется, это работает, это все, о чем вы просили? Наверное, вы могли бы заняться более активными маршрутами, но это казалось достаточно простым.