三角形周围的 CSS 框阴影
我需要使用简单的 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 获得三角形?
I need to create a triangle with a drop shadow using simple html and css. Answered by another stackoverflow question, I was able to create the triangle with mitered borders. Basically I create 1 side of a box with a very wide border and the nearby side with a wide transparent border:
div.triangle {
border-bottom : 60px solid transparent;
border-left : 60px solid black;
}
works great, but when I try to apply a box-shadow the shadow goes around the enclosing square... not the triangle:
div.triangle {
border-bottom : 60px solid transparent;
border-left : 60px solid black;
-webkit-box-shadow: 0 0 10px black;
}
How do I get a triangle using only css/html with a drop shadow?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
似乎不可能。绝对使用想象是更容易的解决方案。
我做了类似三角形的东西:) http://jsfiddle.net/5dw8M/109/ 。抱歉,无法在您的帖子下发表评论。也许它会成为某人的灵感;
Seems like impossible. Definitely using an imagine is much more easier solution.
I've made something like triangle :) http://jsfiddle.net/5dw8M/109/ . Sorry cannot leave a comment under your post. May be it'll serve like an inspiration for someone;
放置另一个具有相似属性的 div 并调整位置怎么样?
类似于 http://jsfiddle.net/eveevans/JWGTw/
What about put another div with similar property and play with positions?
something like http://jsfiddle.net/eveevans/JWGTw/
您可以使用“transform”属性将正方形旋转 45 度并隐藏其一半,但并非所有浏览器都支持它,因此您需要后备。
jsfiddle 上的演示。
摘自 此 CSS 技巧页面 进行了修改。
You can use the "transform" property to rotate a square 45 degrees and hide half of it, but not all browsers support it, so you'll need a fallback.
Demo on jsfiddle.
Lifted from this CSS Tricks page with modifications.
也许最好的选择是使用
过滤器
:Probably the best option is using
filter
:带有 PNG 后备的
是否是一种选择?
演示:jsfiddle.net/Marcel/3dbzm/1
Would
<canvas>
with a PNG fallback be an option?Demo: jsfiddle.net/Marcel/3dbzm/1
创建该三角形的副本,对其进行脱色,使用 CSS 为其赋予负 z-index 值,最后使用 CSS 定位使其偏离中心。
Create a duplicate of that triangle, decolorize it, give it a negative z-index value using css, and finally off center it with CSS positioning.