如何将图标放在图像的左上角。 Vue/CSS

Posted

技术标签:

【中文标题】如何将图标放在图像的左上角。 Vue/CSS【英文标题】:How can i put the icon on the top left inside of the image. Vue / CSS 【发布时间】:2021-10-24 22:16:58 【问题描述】:

我正在开发一个 vue 项目,我正在尝试在每个图像的左上角制作一排带有图标的图像。

这是我的代码:

<div v-for="(image, index) in images" :key="index" class="d-inline py-5 ">
    <img :src="'/product_images/'+image.image_name" class="m-1 rounded-2 "  style="width: 100px; height: 100px">
    <button class="btn"><i id="icon" class="bi bi-trash-fill text-danger" style="font-size: 22px"></i></button>
</div>

这就是我得到的:

【问题讨论】:

【参考方案1】:

一种简单的方法是在 CSS 中进行绝对定位。这是 TailwindCSS 的示例(请关注this link 进行复制):

<div class="relative">
  <img src="/img/logo.svg" class="h-7 sm:h-8" />
  <div class="absolute top-0 left-0">Icon</div>
</div>   

所以你的代码应该调整为:

<div v-for="(image, index) in images" :key="index" class="d-inline py-5" style="position: relative">
    <img :src="'/product_images/'+image.image_name" class="m-1 rounded-2 "  style="width: 100px; height: 100px">
    <button class="btn"><i id="icon" class="bi bi-trash-fill text-danger" style="font-size: 22px; position: absolute; top: 0; left: 0"></i></button>
</div>

您可以随意调整 CSS 属性 topbottomleftright 以满足您的需求。

【讨论】:

不,z-index 只控制元素的z轴水平。 z-index 很有用,如果您想将 div 放在代码中的 image 上方。【参考方案2】:

这不是 vue 特定的要求。它只是简单的 CSS。

您需要将您的button(删除图标)绝对相对于包装器(包含图像和按钮)

见下例

.wrapper 
    position:relative

button 
   position:absolute;
   top:0;
   left:0;
<div class="wrapper">
   <img src="https://via.placeholder.com/150" />
   <button>
      Delete
   </button>
</div>

【讨论】:

以上是关于如何将图标放在图像的左上角。 Vue/CSS的主要内容,如果未能解决你的问题,请参考以下文章

在 Windows 窗体 C# 中创建 POI 映射。如何将图标(图像)放在地图上(图片框中的现有图像)?

Android:如何设置不同的布局标题和标题栏图标图像

如何无条件地将绿色添加图标放在插入行上

Flutter:忽略图标的空间

将图标与多行 UILabel 的左上角对齐

如何制作ico图标?