与下方图像的尺寸和位置完全相同的叠加

问题描述 投票:0回答:1

我在 nuxt 模板中有一张图像。我希望叠加层具有精确的图像大小和位置。我事先不知道图像的长宽比。

<template>
  <div>
    <div class="overlay"></div>
    <img class="img" :src="image?.imageSrc" :alt="image?.id" />
  </div>
</template>

<script setup lang="ts">
import { Image } from "~/types/interfaces/image";

defineProps({
  image: {
    type: Object as () => Image | undefined,
    default: () => ({}) as Image,
  },
});
</script>

<style scoped lang="scss">
.overlay {
  background-color: green;
}

.img {
  max-width: 100%;
  max-height: 100%;
}
</style>
css vuejs3 aspect-ratio nuxt3
1个回答
0
投票

img class
overlay class
的父div中添加类名。

<template>
    <div class="box">
        <div class="overlay"></div>
        <img class="img" :src="image?.imageSrc" :alt="image?.id" />
    </div>
</template>

CSS
box div
添加
overlay div
,如下所示,

.box {
    position: relative;
}
.overlay {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background-color: green;
    opacity: 0.7;
}

.img {
    max-width: 100%;
    max-height: 100%;
}

您将看到绿色覆盖图像的大小。您还可以通过更改

box div

的大小来使用自定义图像尺寸

图片:

© www.soinside.com 2019 - 2024. All rights reserved.