我正在创建一个对话框,它应该占据整个屏幕的宽度和高度。其内容应分为两部分-图像和页脚区域。页脚区域应为2行高,图像区域应占父区域的其余部分。我使用tailwindcss尝试这样做,但是图像溢出了它的容器并占据了整个对话框的高度。当我把图片注解掉,并把一个<div>
和一个类w-full h-full
放在一起时,它占用了我想要的空间。如何使用<img>
标签实现相同的功能?
<dialog
bind:this={dialog}
class="w-screen h-screen rounded-xl bg-surface-50 mx-auto my-auto overflow-hidden border-0" tabindex="-1"
onclick="event.target==this && this.close()"
>
<div class="w-full h-full flex flex-col relative border-0" tabindex="-1">
<div class="flex-grow">
<img src={image?.s3_path} alt="fotka" class="object-contain h-full w-full">
<!-- <div class="w-full h-full bg-primary-400"></div> -->
</div>
<div class="w-full h-12">
x
</div>
</div>
</dialog>
字符串
我还尝试了移除h-full
,使用h-auto
等等。
非常感谢你的帮助。
2条答案
按热度按时间gudnpqoy1#
要确保图像占用对话框中的剩余空间并且不会溢出,您可以使用Tailwind CSS中的flex和max-height工具的组合。
下面是你的更新代码:
字符串
我把标签类中的h-full替换为max-h-full。这确保图像将占据其容器的整个宽度(w-full),同时尊重其纵横比并且不溢出。父级上的溢出隐藏类也有助于将图像包含在其边界内。
myzjeezk2#
尝试将h-full替换为图像容器所需的特定高度,并设置object-contain类。
像这样?
字符串
在这里,我创建了包含图像的相对div和图像的绝对div,以便它填充整个父div。我还维护了object-contain类来保持图像的纵横比。