当前位置: 首页 > 知识库问答 >
问题:

如何将带有CSS的SVG clipPath应用到DIV的一个边缘?

巴照
2023-03-14

我有一个布局,有许多不同的曲线应用于全宽框的顶部和/或底部。我几乎可以做到这一点,使用带有clipPath的SVGclipPathunits=“objectBoundingBox”元素,并使用CSSclip-path:url(#curve)应用到框中。然而,目前曲线比例缩放,我希望它保持它的高度,因为宽度与方框缩放。

下面是我当前的代码:

null

.box {

  height: 100vw;
  background-color: red;
  clip-path: url(#curve);

}
<div class="box"></div>

<svg>
    <defs>
        <clipPath id="curve" clipPathUnits="objectBoundingBox">
            <path d="M0 0.00880688C0 0.00880688 0.101517 -0.0152445 0.276014 0.0161458C0.474915 0.0519263 0.605365 0.0594333 0.727565 0.0493416C0.83584 0.0403992 1 0.0124763 1 0.0124763V1H0V0.00880688Z"/>
        </clipPath>
    </defs>
</svg>

null

我认为问题在于,使用clippathunits=“objectboundingbox”意味着,虽然曲线总是从框的左边缘开始,并在右边缘结束(根据需要),但它的高度会随着框的高度而变化。我将这里的高度设置为100vw,以(几乎)看到它的作用。我需要的路径的行为,就像它当前做的从左到右(始终适合框),但从上到下,我想要相同的高度覆盖的曲线路径,无论框的高度。我感觉我需要类似于clippathunits=“objectboundingbox”这样的东西来处理X轴,而对于Y轴则需要类似于clippathunits=“userspaceonuse”这样的东西。我不认为这是可能的,但我仍然需要另一种方法来处理这一点。

共有1个答案

岳和泽
2023-03-14

将其用作掩码,并将其宽度定义为100%auto高度

null

.box {
  height: 200px; /* this can be any height and it won't affect the curvature */
  -webkit-mask:
    url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 1 1"><path d="M0 0.00880688C0 0.00880688 0.101517 -0.0152445 0.276014 0.0161458C0.474915 0.0519263 0.605365 0.0594333 0.727565 0.0493416C0.83584 0.0403992 1 0.0124763 1 0.0124763V1H0V0.00880688Z" fill="black"/></svg>') 
    top/100% auto no-repeat;
  background:red;
}
<div class="box"></div>
 类似资料:
  • 我想为包含引导按钮的分区指定CSS样式,我这样做的方式是在按钮标记中指定内联CSS代码,这样做是为了不影响页面中的其他引导按钮。 以下代码可以内联工作: 但是我想导入一个CSS文件,其中包含div中按钮的相同样式(请注意,受影响的类将是“btn”)。

  • 我试着让两个div相邻,它们之间有一个对角线空间。我在stackoverflow上看到过多个关于对角线div的教程,但它们都是通过为带有纯色的div使用两个边框并使用它们创建的对角线来实现的。但我想要图片/背景图像,而不是纯色。甚至可能还有其他内容,比如在对角线下的文本。当使用边框时,这是不可能的,因为边框在div之外。(floatright隐藏溢出或其他内容。) 这里有人能给我一个提示如何实现这

  • 我有一个简单的网页,两个div并排。一个包含文本,另一个包含整个右分区的图像。 完整的代码在这里https://jsfiddle.net/Cilvako/fz97emmz/当我调整浏览器大小时,图像div会调整大小,但文本div不会发生任何变化。我怎样才能让两者都有反应?我应该将两者都包装在容器div中吗?谢谢你!

  • 我的愿望是当屏幕尺寸减小时,上会出现溢出滚动条。 它在Firefox上是这样做的,然而,背景并没有覆盖滚动条右侧的内容。 此外,IE和Chrome都向下推,甚至不显示滚动条。 编辑下面的图片显示了我想要的外观。请注意,有一个滚动条。 https://output.jsbin.com/huwagajome

  • 我有servlet生成的HTML,它有一个表和一个或两个div,具体取决于配置。下面是一个快速示例: 问题是,我需要div来填充整个td,不管是只有一个还是两个。是否有可能传播第一和第二div,(或者只是伸展第一div,如果没有第二)到只有CSS的单元格? 更新:我需要这些div(“第一div”和“第二div”)是100%的单元格宽度,当两个单元格都有时,是50%的单元格高度,当只有一个单元格时,

  • 问题内容: 我想将CSS文件应用于页面中的具体DIV。这是页面结构: 我试图应用CSS文件的规则来编辑它(CSS文件太大): 但是该解决方案不起作用。那么,我该怎么做呢? 问题答案: 您可以尝试: 等等,这就是您想要的吗?