如何创建一个基于高度而不是宽度的响应式页面?

问题描述 投票:0回答:1

我正在尝试为我将使用 iframe 嵌入的游戏创建一个非常简单的页面。

我希望响应能力与此页面完全相同:https://rajeevbasu.com/projects/wil3d/index.html

在上面的示例中,游戏和文本完美调整大小以始终适合屏幕的高度,当窗口变得非常小时,它只显示游戏(这是有道理的)

任何人都可以帮助我了解如何制作与上面的示例链接非常相似的东西吗? 我的游戏将使用 iframe 嵌入,尺寸为 3:4。

我找到了很多展示如何处理宽度的示例,但没有一个关注高度。

我一直在研究这个例子,但到目前为止还没有运气:

https://jsfiddle.net/mjgLcp9q/

<div class="responsive-video"> <div class="cta"></div>div> <iframe width="420" height="315" src="https://www.youtube.com/embed/j1qtsLfZWWQ" frameborder="0" allowfullscreen></iframe> </div>
.responsive-video {
    position: relative;
    padding-bottom: 56.25%; /*Set based on the videos aspect ratio. If the aspect ratio is 16:9 set 
    the padding bottom to 56.25%. If the video aspect ration is 4:3, set padding-bottom to 75% */
    padding-top: 35px; /*Height of the youtube video header*/
    height: 0; /* Not needed as the iframe derives the height from the padding bottom */
    overflow: hidden; /*hides if any of the video escapes outside the container*/
}
.cta  {
    position: absolute;
    width: 30px;
    height: auto;
    right: 0;
    bottom: 0;
}

.responsive-video iframe {
    width: 100%; /*make sure video takes up 100% of the width*/
    height: 100%;/*make sure video takes up 100% of the height*/
    position: absolute; /*required because container has a height of 0*/
    left: 0; /* correct the positioning */
    top: 0; /* correct the positioning */
}
    
javascript css iframe responsive-design media-queries
1个回答
0
投票
快速写下来,我想可能会有错误,但这表明媒体查询如何有价值,但在您的情况下不一定需要所有方面。如果您想要将内容从桌面查看转移到移动查看并想要调整大小和各种类型,它非常强大。

以下是示例。

body { margin: 0; padding: 0; overflow: hidden; display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100vh; } iframe { width: 100%; height: 100%; border: 0; } #text { text-align: center; padding: 20px; } /* Media query for smaller screens */ @media screen and (max-width: 600px) { #text { display: none; /* Hide the text on screens below 600px width */ } }
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Responsive Iframe with Text</title>
    <link rel="stylesheet" href="styles.css">
</head>
<body>
    <iframe src="https://www.example.com"></iframe>
    <div id="text">
        <p>Hello, world!</p>
    </div>
</body>
</html>

为了使示例正常运行,您可能需要放大浏览器或手动更改窗口大小,以使窗口认为它是 600px 或以下。

© www.soinside.com 2019 - 2024. All rights reserved.