我找到了有关如何仅使用 CSS 创建各种形状的信息,例如梯形和心形;但是,它们是实心形状。有没有办法创建一个透明的形状,例如梯形,只显示轮廓/边框?
通过制作两个形状并将它们重叠,一个比另一个大,可以使它看起来具有这种效果,但这只有在形状后面的背景是纯色时才有效,这可能并不总是如此. 这就是透明度的原因。
CSS 形状的例子:link ; 例如,看看三角形。
谢谢你。
这通常是通过边界技巧来完成的,而这些技巧对此并没有真正的帮助
为此,您需要其他技术。
例如,请参阅这个 CSS
body {
background: linear-gradient(90deg, lightblue, yellow)
}
.trapezoid {
left: 50px;
top: 50px;
position: absolute;
height: 100px;
width: 500px;
background-color: transparent;
}
.trapezoid:before {
content: '';
width: 57%;
height: 100%;
left: -4%;
position: absolute;
border-color: red;
border-style: solid;
border-width: 3px 0px 3px 3px;
-webkit-transform: skewX(-20deg);
}
.trapezoid:after {
content: '';
width: 59%;
height: 100%;
right: -4%;
position: absolute;
border-color: red;
border-style: solid;
border-width: 3px 3px 3px 0px;
-webkit-transform: skewX(20deg);
}
根据您的要求,基本元素具有透明背景。我在正文中设置了一个渐变来验证它。
您添加了 2 个伪元素,它们设置了边界(内部边界除外),并且倾斜以实现梯形
您可以将背景颜色设置为透明
背景颜色:透明;
这些形状通常在 css 中完成的方式是通过边框操作。当你有一个透明的梯形时,它只是一个边被边框截断的矩形。正因为如此,没有办法使用统一的边框并保持相同的形状。
您当前的代码是什么样的?您应该只能为其添加边框而没有背景颜色。示例:http: //jsfiddle.net/tBBkg/
重叠透明形状(带边框):
#square {
width: 140px;
height: 140px;
border: 2px solid blue;
position: absolute;
}
#circle {
position: absolute;
height: 100px;
width: 100px;
-moz-border-radius: 50px;
-webkit-border-radius: 50px;
border-radius: 50px;
border: 2px solid pink;
}
也许我没有正确理解这个问题,在这种情况下你能澄清一下吗?