【发布时间】:2016-08-22 03:03:23
【问题描述】:
有没有办法为带有文本的几何形状创建内部阴影,用 CSS 制作?
我使用了这个帖子的代码:Required pentagon shape with right direction CSS and HTML
如果形状由 div 和三角形组成 - 我可以只为 div 设置内部阴影。但即使我也可以为三角形设置阴影,它们之间的边框也会变得可见。
div {
position: relative;
width: 125px;
height: 150px;
background: #4275FF;
-moz-box-shadow: inset 0 0 10px #000000;
-webkit-box-shadow: inset 0 0 10px #000000;
box-shadow: inset 0 0 10px #000000;
}
div:after {
content: '';
position: absolute;
width: 0;
height: 0;
border-top: 75px solid transparent;
border-bottom: 75px solid transparent;
border-left: 25px solid #4275FF;
right: -25px;
}
<div></div>
如果我使用 swg,我可以使用 box-shadow 创建一个内部阴影,但表单的三角形部分不会投射阴影。而且在这种情况下,改变这个形状的比例也不是很方便。
div {
width: 150px;
height: 150px;
background: #4275FF;
-moz-box-shadow: inset 0 0 10px #000000;
-webkit-box-shadow: inset 0 0 10px #000000;
box-shadow: inset 0 0 10px #000000;
}
<svg width="150" height="150">
<defs>
<clipPath id="shape">
<path d="M0,0 h125 l25,75 l-25,75 h-125z" />
</clipPath>
</defs>
<foreignObject clip-path="url(#shape)" width="100%" height="100%">
<div></div>
</foreignObject>
</svg>
【问题讨论】:
-
你试过用
gradients给border吗?您可以选择性在您希望边框可见的边上。