1

我找到了有关如何仅使用 CSS 创建各种形状的信息,例如梯形和心形;但是,它们是实心形状。有没有办法创建一个透明的形状,例如梯形,只显示轮廓/边框?

通过制作两个形状并将它们重叠,一个比另一个大,可以使它看起来具有这种效果,但这只有在形状后面的背景是纯色时才有效,这可能并不总是如此. 这就是透明度的原因。

CSS 形状的例子:link ; 例如,看看三角形。

谢谢你。

4

4 回答 4

1

这通常是通过边界技巧来完成的,而这些技巧对此并没有真正的帮助

为此,您需要其他技术。

例如,请参阅这个 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 个伪元素,它们设置了边界(内部边界除外),并且倾斜以实现梯形

于 2013-07-30T21:11:22.980 回答
0

您可以将背景颜色设置为透明

背景颜色:透明;

于 2013-07-30T19:23:35.147 回答
0

这些形状通常在 css 中完成的方式是通过边框操作。当你有一个透明的梯形时,它只是一个边被边框截断的矩形。正因为如此,没有办法使用统一的边框并保持相同的形状。

于 2013-07-30T19:26:06.607 回答
0

您当前的代码是什么样的?您应该只能为其添加边框而没有背景颜色。示例: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;
}

也许我没有正确理解这个问题,在这种情况下你能澄清一下吗?

于 2013-07-30T19:28:20.783 回答