css之如何获取祖先元素的宽高

如何获取包含块之外的祖先元素的宽高

一、使用css变量

css 复制代码
  .container {
            width: 200px;
            height: 100px;
            background-color: #f0f0f0;
            --ancestor-width: 200px;
            --ancestor-height: 100px;
        }
        .box {
            width: 150px;
            height: 50px;
            background-color: #000;
        }
        .item {
            width: var(--ancestor-width);
            height: var(--ancestor-height);
            background-color: red;
        }

当祖先元素的宽高是百分比的时候还是挺有用的

二、使用容器查询

css 复制代码
    /* 
        方案1: 使用容器查询获取祖先元素宽度(推荐,现代浏览器)
         将祖先元素设置为容器
        */
        .container {
            container-type: inline-size;
            width: 200px;
            height: 100px;
            background-color: #f0f0f0;
        }
        .box {
            width: 150px;
            height: 50px;
            background-color: #000;
        }
        .item {
            /* 方案1: 使用容器查询(推荐)- 基于祖先容器宽度
                65cqw = 65% of container width (祖先元素.su-content的宽度) */
            width: 65cqw;
            height: 100%;
            background-color: red;
        }
相关推荐
serve the people7 小时前
滑块验证完整实现教程(前端 + 后端 + Nginx 集成)
运维·前端·nginx
yivifu7 小时前
Excel中Lookup函数实现临界点归入下一个等级的方法
java·前端·excel
Wiktok7 小时前
Tailwind CSS 自适应相关
前端·css·tailwindcss
LYFlied7 小时前
【一句话概括】Vue2 和 Vue3 的 diff 算法区别
前端·vue.js·算法·diff
亮子AI7 小时前
Chrome 和 Edge 生成的 fingerprint 是一样的?
前端·chrome·edge
狼性书生7 小时前
uniapp实现的时间范围选择器组件
前端·uni-app·vue·组件·插件
挫折常伴左右7 小时前
HTML中的表单
前端·html
天问一7 小时前
前端引用printJS打印
前端·arcgis
xinyu_Jina8 小时前
PaperStudio:WYSIWYG文档的Web实现——从CSS Print到客户端PDF生成的技术解析
前端·css·pdf