CSS动态获取视口尺寸
如默
撰写于 2024年 11月 14 日

说明

今天看到一篇CSS动态获取视口尺寸的文章记录一下

内容

一般获取视口尺寸,都是用JS实现,CSS也可以动态获取,用了反正切函数和正切函数,转换了一下px,代码如下:

<!DOCTYPE html>
<html lang="zh-CN">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>CSS动态获取视口大小</title>
    <style>
      @property --vw {
        syntax: "<length>";
        inherits: true;
        initial-value: 100vw;
      }
      @property --vh {
        syntax: "<length>";
        inherits: true;
        initial-value: 100vh;
      }
      :root {
        --w: tan(atan2(var(--vw), 1px));
        --h: tan(atan2(var(--vh), 1px));
      }
      body::before {
        content: counter(w) "X" counter(h);
        counter-reset: w var(--w) h var(--h);
        font-size: 150px;
        font-weight: 900;
        position: fixed;
        inset: 0;
        width: fit-content;
        height: fit-content;
        margin: auto;
      }
    </style>
  </head>
  <body></body>
</html>

结语

比较巧妙,反正我之前没想到过,记录一下

CSS动态获取视口尺寸

说明

今天看到一篇CSS动态获取视口尺寸的文章记录一下

内容

一般获取视口尺寸,都是用JS实现,CSS也可以动态获取,用了反正切函数和正切函数,转换了一下px,代码如下:

<!DOCTYPE html>
<html lang="zh-CN">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>CSS动态获取视口大小</title>
    <style>
      @property --vw {
        syntax: "<length>";
        inherits: true;
        initial-value: 100vw;
      }
      @property --vh {
        syntax: "<length>";
        inherits: true;
        initial-value: 100vh;
      }
      :root {
        --w: tan(atan2(var(--vw), 1px));
        --h: tan(atan2(var(--vh), 1px));
      }
      body::before {
        content: counter(w) "X" counter(h);
        counter-reset: w var(--w) h var(--h);
        font-size: 150px;
        font-weight: 900;
        position: fixed;
        inset: 0;
        width: fit-content;
        height: fit-content;
        margin: auto;
      }
    </style>
  </head>
  <body></body>
</html>

结语

比较巧妙,反正我之前没想到过,记录一下


赞 (1)

猜您想看

  • markdown语法大全

    Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式。

    2019年01月24日
  • Docker指定latest标签

    之前发布了两个版本的docker文件,有1.0和2.0,默认使用latest标签应该指向最新的2.0版本,记录一下

    2023年05月30日
  • AOC U28G2U显示器PIP和PBP使用体验

    前两天新换了一个显示器,正好有PIP和PBP功能,试验一下。

    2022年10月16日
  • 绕过校园网web认证

    校园网流量非常贵,不知道其他学校是什么情况, 本校10元3G,每个月给2.5G免费流量,且晚上十二点到早上六点断网。 学校的宽带也很贵,20M的一个月60,10M的一个月50,晚上十一点半到早上六点断网。

    2019年07月12日
  • 阿斯加特 ddr5 6400M 32G*2套条体验

    最近因为玩天际线2,想升级到64G内存,购买了阿斯加特 ddr5 6400M 32G*2套条,但是问题很多,记录一下。

    2024年02月18日
  • Android版课程表APP

    Android实践demo

    2019年11月26日

评论区(暂无评论)

这里空空如也,快来评论吧~

我要评论

Vaptcha 初始化中...