css 宽高保持比例

在前端开发中,我们经常会遇到需要设置元素的宽高比例保持不变的情况。例如,在设计响应式网页时,我们可能需要让一个图片或者视频在不同屏幕尺寸下保持一定的宽高比例,以确保页面布局的美观和功能的正常展示。在这种情况下,我们就需要使用 CSS 来实现宽高比例的保持。

方法一:使用 padding 实现

一种常见的方法是使用 padding 来创建一个占位符,然后在占位符内部放置内容,通过 padding 的百分比值来控制宽高比例。具体实现如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CSS 宽高保持比例</title>
    <style>
        .wrapper {
            position: relative;
            width: 100%;
            padding-top: 56.25%; /* 16:9 视频的宽高比例 */
        }

        .content {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
        }
    </style>
</head>
<body>
    <div class="wrapper">
        <div class="content">
            <!-- 这里放置内容,保证宽高比例 -->
        </div>
    </div>
</body>
</html>

在这段代码中,我们通过设置包裹容器 .wrapper 的 padding-top 为 56.25%(即 16:9 的宽高比例),然后在内部放置 .content 容器来实现宽高比例的保持。在 .content 容器内部放置具体内容即可。

方法二:使用绝对定位实现

另一种常见的方法是使用绝对定位来控制元素的宽高比例。具体实现如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CSS 宽高保持比例</title>
    <style>
        .wrapper {
            position: relative;
            width: 100%;
            height: 0;
            padding-top: 56.25%; /* 16:9 视频的宽高比例 */
        }

        .content {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
        }
    </style>
</head>
<body>
    <div class="wrapper">
        <div class="content">
            <!-- 这里放置内容,保证宽高比例 -->
        </div>
    </div>
</body>
</html>

与方法一类似,这里我们同样通过占位容器 .wrapper 的 padding-top 来实现宽高比例,然后通过绝对定位的 .content 容器来控制宽高比例的保持。

实际应用

下面我们看一个实际的示例,如何在一个响应式网页中使用 CSS 来保持一个视频的宽高比例。

最后修改:2024 年 05 月 17 日
如果觉得我的文章对你有用,请随意赞赏