我正在尝试使用具有圆角的剪辑路径创建一个三角形容器。到目前为止,我已经设法获得了三角形,但不确定获得圆角的最佳方法是什么。
到目前为止我有
HTML
<div class="shadow">
<div class="triangle"/>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS
.triangle {
width: 200px;
height: 200px;
background: blue;
clip-path: polygon(100% 0, 0 50%, 100% 100%);
}
.shadow {
filter: drop-shadow(1px 6px 3px rgba(50, 50, 0, .4));
}
Run Code Online (Sandbox Code Playgroud)
我没有使用多边形作为剪切路径,而是使用路径:带圆角的三角形:
.triangle {
padding: 0;
background-image: url(https://assets.codepen.io/222579/beagle400.jpg);
background-size: cover;
width:100px;
height: 100px;
-webkit-clip-path: url(#clip);
clip-path: url(#clip);
}
.shadow {
filter: drop-shadow(1px 6px 3px rgba(50, 50, 0, .4));
}Run Code Online (Sandbox Code Playgroud)
<svg height="0" width="0" class="svg-clip" style="position:absolute">
<defs>
<clipPath id="clip">
<path d="M100.000,21.000 Q100,0 81.217,9.391L18.783,40.609 Q0,50 18.783,59.391L81.217,90.609 Q100,100 100.000,79.000Z" />
</clipPath>
</defs>
</svg>
<div class="shadow">
<div class="triangle"/>
</div>Run Code Online (Sandbox Code Playgroud)
为了获得带圆角的三角形,我使用这支笔帮助我将多边形转换为带圆角的路径。
OP 正在评论:
你知道是否有一种方法可以从路径中使用它,如果宽度响应,路径会随之缩放?
在下一个示例中,<div class="triangle"/>宽度和高度为 50vw。
请看一下剪切路径的变化:路径的 d 属性现在使用介于 0 和 1 之间的坐标。该<clipPath>元素还有一个新属性:clipPathUnits="objectBoundingBox"
clipPathUnits="objectBoundingBox" 该值表示
<clipPath>元素内的所有坐标都相对于应用剪切路径的元素的边界框。这意味着坐标系的原点是物体边界框的左上角,物体边界框的宽度和高度被认为具有 1 个单位值的长度。
.triangle {
padding: 0;
background-image: url(https://assets.codepen.io/222579/beagle400.jpg);
background-size: cover;
width:50vw;
height: 50vw;
-webkit-clip-path: url(#clip);
clip-path: url(#clip);
}
.shadow {
filter: drop-shadow(1px 6px 3px rgba(50, 50, 0, .4));
}Run Code Online (Sandbox Code Playgroud)
<svg height="0" width="0" class="svg-clip" style="position:absolute">
<defs>
<clipPath id="clip" clipPathUnits="objectBoundingBox">
<!--<path d="M100.000,21.000 Q100,0 81.217,9.391L18.783,40.609 Q0,50 18.783,59.391L81.217,90.609 Q100,100 100.000,79.000Z" />-->
<path d="M1,.21 Q1,0 .81,.09L.187,.4 Q0,.5 .187,.59L.81,.90 Q1,1 1,.79Z" />
</clipPath>
</defs>
</svg>
<div class="shadow">
<div class="triangle"/>
</div>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
547 次 |
| 最近记录: |