使用CSS

时间:2018-10-08 11:47:44

标签: css css-shapes

我的网站图像具有边框形状,需要将其转换为CSS。现在,我将边框另存为图像,并使用该图像在图像周围制作了边框。但是,我想知道是否可以使用普通CSS来完成相同的工作。

边框形状如下图:

enter image description here

如您所见,边框的宽度并不是一成不变的,因为它在左上角和右下角附近变粗了(旋转了一点)。 CSS甚至可以做到这一点吗?我知道您可以设置不同侧面的宽度,但这不会产生与上图相同的结果。

1 个答案:

答案 0 :(得分:2)

这是一种 hacky 使用CSS进行近似的方法:

.box {
  margin:0 40px;
  width:300px;
  height:200px;
  border:7px solid;
  border-radius:30px;
  transform:skew(20deg);
  background:
    linear-gradient(to top right,transparent 47%,#000 50%) top/100% 20px,
    linear-gradient(to top right,transparent 47%,#000 50%) right/20px 100%,
    radial-gradient(circle at bottom left, transparent 50%,#000 52%) top right/57px 57px,  
    
    linear-gradient(to bottom left,transparent 47%,#000 50%) bottom/100% 20px,
    linear-gradient(to bottom left,transparent 47%,#000 50%) left/20px 100%,
    radial-gradient(circle at top right, transparent 50%,#000 52%) bottom left/57px 57px;
    
  background-repeat:no-repeat;
}
<div class="box">

</div>

也这样:

.box {
  margin:0 40px;
  width:300px;
  height:200px;
  border:7px solid;
  border-radius:30px;
  transform:skew(20deg);
  background:
    linear-gradient(to top right,transparent 47%,#000 50%) top/100% 20px,
    radial-gradient(circle at bottom left, transparent 50%,#000 52%) calc(100% + 15px) 0/57px 57px,
    
    linear-gradient(to bottom left,transparent 47%,#000 50%) bottom/100% 20px,
    radial-gradient(circle at top right, transparent 50%,#000 52%) -15px 100%/57px 57px;
    
  background-repeat:no-repeat;
}
<div class="box">

</div>