保持元素宽高比

css 属性: aspect-ratio

兼容性问题:Google 浏览器 2021 年后 88+ IE 不支持 ( Can I Use )

  • 宽度不固定
  • 高度不固定( 不给高度 height )
html 复制代码
<body>
  <style>
    div {
      width: 50%;
      background-color: red;
      aspect-ratio: 1/2;
    }
  </style>
  <div></div>
</body>
使用padding + 定位
html 复制代码
 <body>
    <style>
      .item {
        background-color: red;
        width: 50%;
        margin: 0 auto;
      }
      .inner {
        /* 跟随父原生的宽度变化 */
        width: 100%;
        /* 需要了解视觉格式化模型和包含块 */
        /* padding的百分比相当于父元素的百分比 */
        padding-top: 75%;
        /* 此定位是为了container使用 */
        position: relative;
      }
      .container {
        position: absolute;
        /* CSS 属性 inset 为简写属性,对应于 top、right、bottom 和 left 属性。其与 margin 简写属性具有相同的多值语法 */
        inset: 0;
        background-color: blue;
      }
    </style>
    <div class="item">
      <div class="inner">
        <div class="container">这是测试文字</div>
      </div>
    </div>
  </body>
相关推荐
烬羽9 小时前
后端返回的 JSON 字符串,浏览器怎么"看懂"的?——Ajax 全链路拆解
javascript
半个落月10 小时前
一个新手用 Bun + Axios 调通 DeepSeek API 的实践记录
javascript
不好听61310 小时前
深入理解链表:线性数据结构的另一面
javascript·数据结构
林希_Rachel_傻希希10 小时前
学React治好了我的焦虑症,1小时速通React 前20分钟。
前端·javascript·面试
小林ixn10 小时前
从 Ajax 到异步编程:JSON 序列化、Event Loop 与 XHR 请求完全解析
javascript
丷丩11 小时前
MapLibre GL JS第47课:添加动画图标
javascript·gis·动画·mapbox·maplibre
快乐的哈士奇12 小时前
【Next.js实战①】Gmail API 按柜号检索邮件:OAuth 双 Cookie 与搜索 Fallback
开发语言·javascript·ecmascript
云水一下12 小时前
Vue.js从零到精通系列(五):全局状态管理——Pinia 核心与实践
前端·javascript·vue.js
kmblack113 小时前
javascript计算年龄
开发语言·javascript·ecmascript
Dick50713 小时前
ROS2 多机器人通用 Driver 层复盘:BaseRobotDriver 到多平台 Mock 切换实现
前端·javascript·机器人