this个问题的重复,显然太含糊了.

我想在有特定要求的css中使用剪辑路径来剪辑元素.我一直在摆弄它,阅读MDN文档,但不知道如何做到这一点,甚至不知道它是否可以做到.

剪辑路径应该是一个完美的圆形(所以我在考虑circle函数),它的左侧与要剪辑的元素的左侧对齐.圆应该通过获得要剪裁的元素的高度来获得其直径,并将其乘以3(因此,圆应该是要剪裁的元素高度的300%).

以下是我正在努力实现的一个例子:

enter image description here

其中红色部分是我的内容,也就是我想要保留/显示的元素部分.元素可以有不同的宽度和高度,剪辑路径应该适应这一点.

Clarification edit个 我不知道要裁剪的元素会有多大.这个问题的全部要点是,剪辑路径应该适应任何元素.

推荐答案

@Temani提供了很好的 idea ,但在这次比赛中farthest-side是不正确的.

长方体的宽度并不重要,让高度为1,则半径应为1.5. 圆的圆心应为(1.5,0.5).

const boxElement = document.getElementById("box");
const height = parseFloat(boxElement.offsetHeight);
const radius = height * 1.5;
boxElement.style.clipPath = `circle(${radius}px at ${radius}px ${height / 2}px)`;
#box {
  width: 200px;
  height: 100px;
  background: red;
}
<div id="box"></div>

Css相关问答推荐

在AND设计令牌上使用不同的主题

使用tailwind 将父div限制为其具有溢出的最短子级的高度

如何使用遮罩创建手绘SVG动画

尽管 URL 路径正确,但背景图像未显示

如何为图像堆叠效果下方的图层实现与磨砂玻璃类似的视觉效果

背景图像允许溢出输入按钮

在变量中存储匹配 Select 器的子元素的计数

使用任意运行时字符串进行 Tailwind CSS 类定位

Sass @use 排序

热门制作渐变半红/半蓝?

父母是内联块,子元素有%填充=奇怪的行为

Bootstrap 类似乎没有任何作用

在样式化组件中使图像重叠

如何在 CSS 中控制列表样式类型光盘的大小?

CSS:将背景图像拉伸到屏幕的 100% 宽度和高度?

如何填充 100% 的剩余高度?

CSS:在图像周围创建白光

为什么浏览器会为 CSS 属性创建供应商前缀?

将 webkit 滚动条样式应用于指定元素

如何实现最大字体大小?