CSS 边框图像:通过旋转图像来渲染框架



>我需要通过旋转图像来渲染一个框架(即,图片周围的图片框(:

  • 0 度为左侧
  • 顶部为 90
  • 。等等。

据我所知,没有border-image-left|right|top|bottom属性,尽管这也行得通 - 如果我错了,请纠正我。

看来我需要使用 border-image 属性。有谁知道是否可能根据侧面旋转图像?

我想其他混乱的选项将包括

  • 在图像周围创建四个div
  • 手动生成帧边框图像(这不会真正用作 1. 我们有 300 多张图像,以及 2. 帧需要用于具有不同纵横比的图像......

编辑:"取决于侧面"= 左侧 0 度,顶部 90 度,右侧 180 度,底部 240 度......有关示例,请参见下图。

左侧边框图像

部分强制,但将其包装在div 和 span 中并使用伪元素和转换似乎有效。图像包裹在.img-containerdiv 和 span 中,::before::after元素绝对位于图像周围。

下面是标记:

<div class="img-container">
  <span>
    <img src="https://unsplash.it/300/300?image=200">
  </span>
</div>

和造型:

.img-container, span, img{
  display: block;
  position: relative;
}
/* Image border general */
.img-container::before,
.img-container::after,
span::before, span::after{
  content: "";
  position: absolute;
  left: -30px;
  top: 50%;
  width: 30px;
  height: 100%;
  transform: translateY(-50%);
  background-image: url("https://i.stack.imgur.com/0UI1w.png");
  background-size: 100% 100%;
  z-index: 2;
}
/* Specific to the right border */
.img-container::after{
  left: auto;
  right: -30px;
  top: 50%;
  transform: translateY(-50%) rotate(180deg);
}
/* Top and bottom border general */
span::before,
span::after{
  top: 0;
  left: 50%;
  transform: translate(-50%, -50%) rotate(90deg);
}
/* Just the bottom */
span::after {
  top: 100%;
  left: 50%;
  transform: translate(-50%, -50%) rotate(270deg);
}

可能有点多

这是一个小提琴

最新更新