当前位置: 首页 > news >正文

css 宽度屏幕50%,高度等于宽度的50%,窗口变化,比例不变(宽度百分比,高度等比例自适应)

方案一:aspect-ratio

方案二:“包含块”

代码

<!DOCTYPE html>
<html lang="zh-CN"><head><meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /><title>响应式等比例高度示例</title><style>html,body {margin: 0;padding: 0;}.container {display: flex;gap: 16px;padding: 16px;box-sizing: border-box;}/*两个盒子:宽度 50%,高度随宽度等比例变化。选择 2:1 的宽高比(height = width / 2),当视口宽度为 1200px 时,盒子宽度 50% = 600px,高度即为 300px。*/.box {width: 50%;aspect-ratio: 2 / 1; /* 保持等比例:height = width / 2 */background: #f2f3f5;border: 1px solid #dcdfe6;display: flex;align-items: center;justify-content: center;color: #606266;box-sizing: border-box;overflow: hidden;font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, Arial, 'Microsoft Yahei', 'PingFang SC', sans-serif;}/* 小屏下可选:纵向排布,仍保持等比例 *//* @media (max-width: 640px) {.container { flex-direction: column; }.box { width: 100%; }} *//* 兼容不支持 aspect-ratio 的旧浏览器(可选)padding-top: 50% 的百分比是相对“包含块”的宽度计算的,通常就是相对父元素(这里的 .container )的宽度,而不是相对 .box-no-aspect 自身的宽度 */.box-no-aspect {/* 将高度设为 0,用 padding-top 撑出高度 */height: 0;/* padding-top: 50% 的百分比是相对“包含块”的宽度计算的,通常就是相对父元素(这里的 .container )的宽度,而不是相对 .box-no-aspect 自身的宽度 */padding-top: 25%; /* 2:1 宽高比 => 高度 = 宽度的 50% */position: relative;width: 50%;background: #f2f3f5;border: 1px solid #dcdfe6;overflow: hidden;color: #606266;box-sizing: border-box;font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, Arial, 'Microsoft Yahei', 'PingFang SC', sans-serif;}.box-no-aspect > .content {/* 让内容居中覆盖 */position: absolute;left: 0;top: 0;width: 100%;height: 100%;display: flex;align-items: center;justify-content: center;}</style></head><body><div class="container"><div class="box">Box 1(宽 50%,高随宽等比例变化)</div><div class="box">Box 2(宽 50%,高随宽等比例变化)</div></div><div>以下为不支持 aspect-ratio 的备用写法示例</div><div>padding-top: 50% 的百分比是相对“包含块”的宽度计算的,通常就是相对父元素(这里的 .container )的宽度,而不是相对 .box-no-aspect 自身的宽度</div><div class="container"><div class="box-no-aspect"><div class="content">Box 1(fallback)</div></div><div class="box-no-aspect"><div class="content">Box 2(fallback)</div></div></div></body>
</html>

大屏幕等比例也可以参考它来布局

https://yyhsong.github.io/iDataV/

http://www.dtcms.com/a/576903.html

相关文章:

  • Photoshop通道的应用
  • VUE3+element-plus 循环列表中图标由后台动态添加
  • LangFlow前端源码深度解析:核心模块与关键实现
  • 从 Rust 到 Flutter:嵌入式图形与构建工具全景指南
  • 转折·融合·重构——2025十大新兴技术驱动系统变革与全球挑战应对
  • IP地址、子网掩码与网段:网络划分的核心概念
  • 怎样才能在百度搜索到自己的网站wordpress去掉分类栏目前缀
  • 视频孪生与空间智能:重构物理世界的时空认知范式
  • Rust 练习册 11 :可变变量与可变引用详解
  • 在VSCode中:解决终端输出中文乱码问题
  • MATLAB基于BNT工具箱的多输入分类预测
  • 【主流开发语言深度对比】Python/Go/Java/JS/Rust/C++评测
  • 从开发到部署
  • 【无标题】Vscode 报错 got bad result from install script无法远程链接服务器
  • 基于Linux的TCP服务端客户端通信(一)
  • 在 VSCode 中:引入开源cJSon解析库+示例demo
  • SwiftUI 组件开发: 自定义下拉刷新和加载更多(iOS 15 兼容)
  • 【面试】分布式事务与分布式锁:核心原理与工程实践
  • 大连制作网站企业优化网站性能
  • 搜索引擎索引权威指南:抓取、收录与排名的基础
  • 电脑关机重启时显示rundll32 内存不能为read解决方法
  • 【P7】docker镜像发布和部署
  • 电脑启动时报 0xc000000e —— 原因解析与多种修复策略
  • 网站建设需求范文包装回收网站建设
  • 使用 Apache Jena 构建 Java 知识图谱
  • ICLR 2025 | 告别“非黑即白”!X-CLR引入“相似度图谱”,让模型读懂万物关联!
  • 【图像处理基石】什么是alpha matting?
  • 面试后查缺补漏--cmake,makefiles,g++,gcc(自写精华版)
  • 使用房屋价格预测的场景,展示如何从多个影响因素计算权重和偏置的梯度
  • 企业网站的首页设计模板天津seo方案