我的目标是创建一个绝对定位的圆,半径等于视区的(sv*)对角线长度.

enter image description here

我try 使用毕达哥拉斯定理根据宽度和高度计算视区的对角长度,如下所示:

.circle {
    --radius: sqrt(calc(calc(100svw * 100svw) + calc(100svh * 100svh)));
    ...
}

但这失败了,因为在calc乘法中,至少有一个参数必须是数字.

我知道用JavaScript可以计算出视区的对角线长度,但用普通的css可以吗?

推荐答案

一种简单的替代方法是将视口宽度和高度相加,并将其用作半径.

const toggle = () => {
  document.querySelector('.d1').classList.toggle('big')
  setTimeout(toggle, 4000)
}
setTimeout(toggle, 1000)
body {
  margin: 0;
}
.d1 {
  width: 10px;
  aspect-ratio: 1/1;
  background: red;
  border-radius: 9999px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  transition: all 2s ease-in-out;
}
.big {
  width: calc(100vh + 100vw);
  background: blue;
}
<div class="d1"></div>

Css相关问答推荐

隐藏div后缺少div的InnerHTML

如何使用css::Part()定位Web组件shadowDOM中的第N个元素

Nuxt 3+sass:不能将包含路径与@IMPORT和@USE一起使用

你能混合固定/相对定位吗?

使用 Vuetify 的 sass 变量时出错

为什么 :focus 会覆盖 :focus-visible ?

背景上带有文本的按钮的反转 colored颜色

清除 CSS 中已设置的填充属性以恢复 SVG 的默认值

如何为以下布局安排网格?

CSS背景位置从顶部的给定像素开始?

纯 CSS/JS 的 SVG 连续向内方形螺旋动画

使用 Flex Box Tailwind CSS 的元素不相等

Rails 7引擎如何使未编译的样式表可用于托管应用程序?

如何使半圆的边框淡出?

CSS和 Select 器 - 我可以 Select 具有多个类的元素吗?

如何在没有填充区域的情况下背景化 div

什么是 DOM 回流?

在 Firefox 中删除额外的按钮间距/填充

将文本放在 div 的底部

修复 Mobile Safari (iPhone) 上文本呈现不一致且某些字体比其他字体大的字体大小问题?