用于CSS绘制箭头的CSS投影

UrB*_*end 16 css shadow css3

我想要一个div在这里盘旋时出现的箭头也会掉落一个阴影.箭头来自CSS:

.arrow {
position:absolute;
margin-top:-50px;
left:80px;
border-color: transparent transparent transparent #ccff66;
border-style:solid;
border-width:20px;
width:0;
height:0;
z-index:3;
_border-left-color: pink;
_border-bottom-color: pink;
_border-top-color: pink;
_filter: chroma(color=pink);
}
Run Code Online (Sandbox Code Playgroud)

我想申请的影子设置是:

-moz-box-shadow: 1px 0px 5px #888;
-webkit-box-shadow: 1px 0px 5px #888;
box-shadow: 1px 0px 5px #888;
-ms-filter: "progid:DXImageTransform.Microsoft.Shadow(Strength=5, Direction=0, Color='#888888')";
filter: progid:DXImageTransform.Microsoft.Shadow(Strength=5, Direction=0, Color='#888888');
Run Code Online (Sandbox Code Playgroud)

将阴影设置粘贴到箭头中的问题是阴影应用于整个跨度框并导致框阴影而不是箭头的阴影.

PS我想尝试尽可能不使用explorercanvas,因为我正在尝试最小化html中的脚本标记.但是,如果必须请提供代码.

Blo*_*sie 20

将框阴影应用于css边框三角形将不起作用,它只会将其应用于整个元素框.

您可以通过将css边框三角形更改为方形div,使用css3将其旋转45度然后应用框阴影来实现您要执行的操作

-webkit-transform: rotate(45deg);
-moz-transform: rotate(45deg);
-o-transform: rotate(45deg);
transform: rotate(45deg);
position: absolute;
Run Code Online (Sandbox Code Playgroud)

编辑:已 更新

编辑: 请参阅下面的链接,了解使用css content和的另一种方法:after

http://css-tricks.com/triangle-with-shadow/

  • +1.这可能是你使用纯CSS最接近的.当然,它只适用于你的三角形有一个直角的角落.你还需要使用z-index来确保旋转的盒子在主盒子后面分层,但是在主盒子的阴影前面(嗯,很棘手?).最后,如果你支持IE,那么你已经使用了`filter`样式来制作阴影; 请注意在应用旋转时滤波器如何相互作用(或不相互作用). (5认同)