我需要使用简单的html和css创建一个带阴影的三角形。通过另一个stackoverflow问题回答,我能够创建带有斜接边框的三角形。基本上我创建一个边框非常宽的框的一面,附近的边有宽透明边框:
div.triangle {
border-bottom : 60px solid transparent;
border-left : 60px solid black;
}
效果很好,但是当我尝试应用一个盒子阴影时,阴影围绕着封闭的方块而不是三角形:
div.triangle {
border-bottom : 60px solid transparent;
border-left : 60px solid black;
-webkit-box-shadow: 0 0 10px black;
}
如何仅使用带阴影的css / html获取三角形?
似乎不可能。绝对使用想象是更容易的解决方案。
我做了三角形的东西:) http://jsfiddle.net/5dw8M/109/ 。抱歉,不能在您的帖子下发表评论。可能它会像某人的灵感一样;
您可以使用“transform”属性将方形旋转45度并隐藏其中的一半,但并非所有浏览器都支持它,因此您需要回退。
.triangle-with-shadow {
width: 100px;
height: 50px;
position: relative;
overflow: hidden;
box-shadow: 0 16px 10px -15px rgba(0,0,0,0.5);
}
.triangle-with-shadow:after {
content: "";
position: absolute;
width: 50px;
height: 50px;
background: #999;
transform: rotate(45deg);
-ms-transform:rotate(45deg); /* IE 9 */
-moz-transform:rotate(45deg); /* Firefox */
-webkit-transform:rotate(45deg); /* Safari and Chrome */
-o-transform:rotate(45deg); /* Opera */
top: 25px;
left: 25px;
box-shadow: -1px -1px 10px 0px rgba(0,0,0,0.5);
}
在jsfiddle上演示。
解除了 这个CSS技巧页面 修改。
将 <canvas>
有PNG后备可以选择吗?
演示: jsfiddle.net/Marcel/3dbzm/1
创建该三角形的副本,对其进行消色处理,使用css为其赋予负z-index值,最后使用CSS定位将其置于中心位置。
div.triangle {
z-index:-1;
position:relative;
bottom:-16px;
right:-16px;
}
可能最好的选择是使用 filter
:
filter: drop-shadow(0 0 10px black);