如何使 svg 具有与图像相同的样式

How to make an svg have the same style as the images

这是我的物品清单:

  .anim-box {
 margin-top: 5%;
 display: flex;
 width: 100%;
 flex-wrap: wrap;
 justify-content: space-between;
 align-items: center;
}

.anim-box .item {
 display: flex;
 flex: 0 0 30%;
 flex-direction: column;
 justify-content: center;
 align-content: center;
 text-align: center;
 cursor: pointer;
}

.anim-box .item svg,
.anim-box .item img {
 height: auto;
 width: 100%;
}
<div class="anim-box">
   <div class="item"><img id="entry4" src="https://ykob.github.io/glsl-dissolve/img/osaka01.jpg"><span>spin</span></div>
   <div class="item"><img id="entry5" src="https://ykob.github.io/glsl-dissolve/img/osaka01.jpg" class="" style=""><span>zoom</span></div>
   <div class="item">
      <svg>
         <image xlink:href="https://ykob.github.io/glsl-dissolve/img/osaka01.jpg"></image>
      </svg>
      <span>svg</span>
   </div>
</div>

这里我们有 3 个项目,第 1 个和第 2 个是完全相同的图像 height/width/style。最后一项是风格与其他不同的SVG。

请问如何使 SVG 的样式始终与其他样式相同? (要知道图片来源总是一样的)

您需要添加一个视图框来设置 SVG 的宽高比,它的行为与 img 相同:

.anim-box {
 margin-top: 5%;
 display: flex;
 width: 100%;
 flex-wrap: wrap;
 justify-content: space-between;
 align-items: center;
}

.anim-box .item {
 display: flex;
 flex: 0 0 30%;
 flex-direction: column;
 justify-content: center;
 align-content: center;
 text-align: center;
 cursor: pointer;
}

.anim-box .item svg,
.anim-box .item img {
 height: auto;
 width: 100%;
}
<div class="anim-box">
   <div class="item"><img id="entry4" src="https://ykob.github.io/glsl-dissolve/img/osaka01.jpg"><span>spin</span></div>
   <div class="item"><img id="entry5" src="https://ykob.github.io/glsl-dissolve/img/osaka01.jpg" class="" style=""><span>zoom</span></div>
   <div class="item">
      <svg viewBox="0 0 2048 1356">
         <image xlink:href="https://ykob.github.io/glsl-dissolve/img/osaka01.jpg"></image>
      </svg>
      <span>svg</span>
   </div>
</div>