使用圆形图像作为边框图像

问题描述

好的,所以我想使用圆形图像作为边框图像来覆盖图像的整个外部。您可以在下面看到两张图片,其中一张是矩形,另一张是圆形。我能够弄清楚如何使用矩形图像来完美地适合给定的图像,但现在我正在尝试使用相同的技术将圆形图像作为边框来拟合,但我找不到一种方法来实现这一点技术。因此,目前正在使用这些 stlyes 用于矩形图像:

.frame{
    height: 192px;
    width: 160px;
    border-width: 30.4px 32px;
    border-image: url("/images/frame-4.png") 100 / 1.6 / 0 stretch;
}

enter image description here

现在使用圆形图像作为边框并将图像放置在里面,我在框架类上使用边框半径。

.frame{
    border-radius: 111px;
    height: 192px;
    width: 160px;
    border-color: red;
    border-width: 16px;
    background: blue;
    /* border-image: url("/images/frame-5.png") 100 / 1 / 0 stretch; */
}

当我使用边框颜色时,一切看起来都很好

enter image description here

但是当我打开边框图像时,事情开始分崩离析

enter image description here

我不确定发生了什么以及如何解决这个问题。 https://i.imgur.com/erDQcs5.png 如果有人想试一试,这里是图片链接。由于我希望边框图像完美地包裹图像,因此我认为边框图像是最好的方法,而不是使用多个 div。有没有更简单更好的方法来做到这一点?任何帮助表示赞赏。

解决方法

您可以简单地执行以下操作。透明边框和您的框架作为背景:

img {
  border-radius:50%;
  border:19px solid transparent;
  background:url(https://i.imgur.com/erDQcs5.png) center/100% 100% border-box;
}
<img src="https://picsum.photos/id/1/200/200" >

<img src="https://picsum.photos/id/1/200/150" >

<img src="https://picsum.photos/id/1/150/200" >

,

嗯……这个怎么样?

我认为这不是完美的解决方案,但效果很好。

我使用了 background-imagepadding 而不是 border-image

在子元素(内容)中,我使用了 border-radius: inherit

如果您需要测试示例代码,请为图片输入正确的网址。

.border-image {
  border-radius: 111px;
  height: 192px;
  width: 160px;
  background-image: url("frame");
  background-size: 100% 100%;
  padding: 20px;
}

.contents {
  width: 100%;
  height: 100%;
  border-radius: inherit;
  background-image: url("url");
  background-repeat: no-repeat;
  background-size: cover;
}
<body>
  <div class="border-image">
    <div class="contents"></div>
  </div>
 </body>

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...