【发布时间】:2018-04-15 01:18:28
【问题描述】:
我一直在努力实现这个 CSS 形状:
我一直在使用 CSS 转换和伪元素来实现我的目标,我得到了不错的结果,但它并不完美。角落需要不那么尖锐。 还值得指出的是,截止三角形部分需要是透明的。
这是我想出的: https://jsfiddle.net/e1xzjghL/11/
HTML
<div class="date">
<div class="date__month">April</div>
<div class="date__day">20</div>
</div>
CSS
.date {
position: relative;
display: inline-block;
border-radius: .25rem;
background: black;
background-image: radial-gradient(top left, rgba(255,255,255,0.3), transparent);
background-image: -webkit-radial-gradient(top left, rgba(255, 255, 255, 0.2), transparent);
color: white;
text-transform: uppercase;
text-align: center;
font-weight: bold;
line-height: 1;
padding: .4rem;
min-width: 37px;
//centering
left: 50%;
top: 50%;
transform: translate(-50%,-50%);
&__day {
font-size: 2.4rem;
}
&::before, &::after {
content: '';
position: absolute;
display: inline-block;
border: 18.5px solid black;
bottom: -18.5px;
transform: rotate(.25turn) scaleX(.2);
z-index: -1;
}
&::before {
left: 0;
border-color: transparent transparent black transparent;
}
&::after {
right: 0;
border-color: black transparent transparent transparent;
}
}
提前感谢您的帮助!
J
【问题讨论】:
-
我会使用背景图片,图片底部有透明三角形,以达到想要的效果和外观。
-
你能不能只在元素之后、之前添加一个边框半径?
-
@Beth 如果可能,我宁愿不使用图片,谢谢您的建议。
-
@JamieButtonsCoulter,不,它渲染得不好,因为三角形部分已经用边框技巧构建了。
-
@jor1s 对我来说看起来不错? jsfiddle.net/e1xzjghL/14
标签: css css-shapes