如何在CSS中裁剪圆角图像

时间:2016-02-15 07:03:19

标签: html css css3

我需要使个人资料图像角落应该是模糊边框。但在我的代码中,我无法准确得到。

我需要的结果应该是这样的:

enter image description here

但我的代码,模糊边框重复自我。因为,非模糊图像也具有相同的角。似乎角落重复了。



effet {
  width: 400px;
  height: 125px;
  margin: 0 auto 50px auto;
}
.profile-box {
  width: 150px;
  height: 150px;
  margin-left: 40px;
  border: none !important;
  padding: 19.5px 10px;
  display: block;
}
.min_cir {
  border-radius: 50%;
  border-radius: 50%;
  position: absolute;
  top: 0;
}
.filtre--r {
  -webkit-mask: -webkit-radial-gradient(center, closest-side, transparent 30%, black 80%);
  -webkit-mask: radial-gradient(closest-side at center, transparent 50%, black 110%);
  -webkit-filter: blur(2px);
  mask: url('#mask-radial');
  filter: blur(2px);
  transform: scale(1.1);
  position: absolute;
  top: 0;
}

<div class="profile-box">
  <div class="media">
    <a class="pull-left" href="">
      <div class="effet">
        <img class="filtre filtre--r min_cir" src="http://i.imgur.com/oH1698V.jpg" />
        <img class="min_cir" src="http://i.imgur.com/oH1698V.jpg">
      </div>
    </a>
  </div>
</div>
&#13;
&#13;
&#13;

我需要根据模糊角的宽度剪切非模糊图像。

2 个答案:

答案 0 :(得分:1)

您可以提供以下方式:

首先删除缩放,因为它会显示为重复图像。

然后将第二个图像放在另一个div中,并根据示例给出以下css。这里的示例div是imgDiv

第二张图像的父div,即imgDivoverflow:hidden并给出左侧和顶部值,并给出高度和宽度为(图像div - 50px(如果想要15px模糊))这样做。

并给出两个图像的相同高度和宽度。在这里,我给出与原始图像相同的尺寸。

effet {
  width: 400px;
  height: 125px;
  margin: 0 auto 50px auto;
}
.profile-box {
  width: 150px;
  height: 150px;
  margin-left: 40px;
  border: none !important;
  padding: 19.5px 10px;
  display: block;
}
.min_cir {
  border-radius: 50%;
  border-radius: 50%;
  position: absolute;
  top: -20px;
  left: -20px;
}

.filtre--r {
  -webkit-mask: -webkit-radial-gradient(center, closest-side, transparent 30%, black 80%);
  -webkit-mask: radial-gradient(closest-side at center, transparent 50%, black 110%);
  -webkit-filter: blur(4px);
  mask: url('#mask-radial');
  filter: blur(4px);
  position: absolute;
  top: 0;
  left:0;
 
}

.imgDiv{
    border-radius: 50%;
    height: 266px;
    left: 20px;
    overflow: hidden;
    position: absolute;
    top: 20px;
    width: 660px;
}

img{
   width: 700px;
  height: 306px;
}
<div class="profile-box">
  <div class="media">
    <a class="pull-left" href="">
      <div class="effet">
        <img class="filtre filtre--r min_cir" src="http://i.imgur.com/oH1698V.jpg" />
        <div class="imgDiv">
            <img class="min_cir" src="http://i.imgur.com/oH1698V.jpg">
        </div>
      </div>
    </a>
  </div>
</div>

答案 1 :(得分:1)

scale()方法增加或减少元素的大小(根据宽度和高度给出的参数)。我认为你可以通过对scale()方法使用不同的纵向和横向paramateres来实现所需的结果。目前,您应用1.1幅度的宽度和高度。这适用于形状为正方形(宽度和高度相等)的图形,而图像为矩形(宽度和高度不相等)。因此,您可以编写scale()方法,例如:transform:scale(1.09,1.13);