Html 嵌入YouTube视频时的自动高度?
我在我的网站上嵌入了一个YouTube视频,但问题是我需要根据视频的宽度和纵横比自动调整高度。所以如果我的宽度是1280,如果视频是16:9,我的高度应该是720。 我试过使用“VW”和“VH”单元,但它们似乎不适用于iframe。我的宽度已按比例设置 我的代码如下:Html 嵌入YouTube视频时的自动高度?,html,css,video,youtube,Html,Css,Video,Youtube,我在我的网站上嵌入了一个YouTube视频,但问题是我需要根据视频的宽度和纵横比自动调整高度。所以如果我的宽度是1280,如果视频是16:9,我的高度应该是720。 我试过使用“VW”和“VH”单元,但它们似乎不适用于iframe。我的宽度已按比例设置 我的代码如下: <iframe style="margin-right: 1%; margin-left: 1%;" width="98%" height="" src="https://www.youtube.com/embed/HwzQ
<iframe style="margin-right: 1%; margin-left: 1%;" width="98%" height="" src="https://www.youtube.com/embed/HwzQbfde-kE" frameborder="0"></iframe>
您可以使用此代码解决此问题 CSS:
.video-container {
position: relative;
padding-bottom: 56.25%; /* 16:9 */
height: 0;
}
.video-container iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
示例Html
<div class="video-container">
<iframe width="560" height="315" src="https://www.youtube.com/embed/_TyJeKKQh-s?controls=0" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
工作原理:容器元素的高度为零,底部填充百分比为0。底部填充百分比是容器宽度的百分比,因此它具有固定的纵横比。但是为了让iframe显示在零高度容器中,需要使容器相对,iframe绝对,定位在div内。我能够在样式元素的宽度和高度上使用
vw
生成响应iframe大小,因为我知道我希望元素使用的水平宽度,然后根据宽度和视频为16:9的知识计算高度。如果您希望视频占用屏幕尺寸893px以上水平空间的45%,否则为90%,则:
.embedded-video-16-9 {
width: 90vw;
height: 50.625vw; /* 90*9/16 */
margin-left: 5vw;
margin-right: 5vw;
}
@media (min-width: 893px) {
.embedded-video-16-9 {
width: 45vw;
height: 25.3125vw; /* 45*9/16 */
margin-left: 2vw;
margin-right: 2vw
}
}
用法如下:
<iframe
class="embedded-video-16-9"
src="https://www.youtube.com/embed/_TyJeKKQh-s?controls=0"
frameborder="0"
allowfullscreen=""
></iframe>
如果选择整个视口,可以使用以下代码:
iframe{
width: 100vw;
height: calc(100vw/1.77);
}
html
width
属性只接受数字(),而不接受原始问题中以测量单位(%、px、vw等为后缀的字符串
如果您知道iframe
容器的宽度(在绝对单位中,如px
或vw
,而不是%
),则可以使用css中的单行高度
解决方案:
.youtube嵌入{
--容器宽度:720px;
--比率:calc(16/9);/*1.77*/
宽度:100%;
高度:计算值(var(--容器宽度)/var(--比率));
}
以下是一个响应迅速的解决方案,它可以解决容器上的水平填充问题:
:根目录{
--视频比率:calc(16/9);
--视频容器最大宽度:640px;
--video-container-x-padding-sum:2rem;/*例如,padding:0 1rem*/
}
.youtube嵌入{
--视频容器宽度:计算(100vw-var(--video-container-x-padding-sum));
宽度:100%;
高度:计算值(var(--视频容器宽度)/var(--视频比率));
}
@仅介质屏幕和(最小宽度:672px){
.youtube嵌入{
--视频容器宽度:var(--视频容器最大宽度);
}
}
@RTW你能解释一下吗,小比特删除col-sm-6样式参考这能回答你的问题吗?这回答了你的问题吗?