我正在尝试创建一个与 Wistia 类似的布局 https://home.wistia.com/live/events/pnd98h7ffa?utm_campaign=2023%20Webinar%20Series&utm_medium=email&_hsmi=265945727&_hsenc=p2ANqtz--pQsHAbm-wIrzjy0fS LCgy63Z71DSHLtAlykHKCOOrVLGZQBflaCGBpRg2kCj9P55DoC0YrSAsCMIkc_7qJ0XAVNkLhA&utm_content =265945727&utm_source=hs_email 您所要做的就是使用任何凭证进行订阅:
我为此使用了 React 和 Tailwind,但我遇到了一个问题,即 iframe 溢出了大屏幕的容器。 这是重现相同错误的伪代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<style>
*,
*::after,
*::before {
padding: 0;
margin: 0;
box-sizing: border-box;
}
main {
height: 100vh;
}
header {
height: 10vh;
background: crimson;
}
.content {
display: flex;
gap: 10px;
justify-content: center;
align-items: center;
height: 90vh;
width: 100%;
padding: 10px;
}
.content iframe {
width: 100%;
aspect-ratio: 16/9;
border: 0;
}
.content div {
width: 500px;
height: 100%;
background: dodgerblue;
}
</style>
<body>
<main>
<header></header>
<div class="content">
<iframe title="test" src="https://www.youtube.com/embed/7PIji8OubXU?si=XmbTvMWI5rlwS1ix"></iframe>
<div></div>
</div>
</main>
</body>
</html>
我尝试为 iframe 设置 max-height: 100% ,它不再溢出高度,但宽度不断增加,即使我尝试设置 max-width:100%;例如,当我尝试设置固定的 max-width:500px 时,宽度停止增加,但 iframe 不再响应,并且黑色块/线条开始出现在其两侧。我不知道导致这种行为的问题是什么,这令人沮丧。如有任何帮助,我们将不胜感激。
问题是因为您设置了
width
,然后 aspect-ratio
扰乱了这一点。如果您设置 height: 100%;
(而不是 width
)那么我相信应该可以工作;请参阅下面的片段:
*,
*::after,
*::before {
padding: 0;
margin: 0;
box-sizing: border-box;
}
main {
height: 100vh;
}
header {
height: 10vh;
background: crimson;
}
.content {
display: flex;
gap: 10px;
justify-content: center;
align-items: center;
height: 90vh;
width: 100%;
padding: 10px;
}
.content iframe {
height: 100%;
aspect-ratio: 16/9;
border: 0;
}
.content div {
width: 500px;
height: 100%;
background: dodgerblue;
}
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<main>
<header></header>
<div class="content">
<iframe title="test" src="https://www.youtube.com/embed/7PIji8OubXU?si=XmbTvMWI5rlwS1ix"></iframe>
<div></div>
</div>
</main>
</body>