如何解决TailwindCSS固定高度卡片内部溢出元素无法完全滚动的问题
问题原因
你当前的布局逻辑存在高度计算冲突:
外层卡片容器已经设置了h-full继承上层h-80的固定高度,但容器内部同时存在标题栏和滚动区域两个元素,你给滚动区域也设置了h-full,意味着滚动区域会直接占满父容器的全部高度,再加上标题栏本身占据的高度,二者总高度已经超出了外层容器的高度上限,因此滚动区域的底部会被外层容器的overflow-hidden截断,自然无法滚动到最底部看到全部内容。
解决方案
将外层容器改为纵向flex布局,滚动区域使用flex-1自动填充剩余高度即可,修改后的代码如下:
<div class="w-full overflow-hidden h-full px-3 py-2 flex flex-col"> <div v-if="title" class="block text-gray-700 text-lg font-semibold py-2 px-2"> <i :class="title_icon" /> {{ title }} </div> <div class="flex-1 overflow-y-auto"> <slot> <!-- Here is another component which holds the appointments--> </slot> </div> </div>
flex-1的作用是让元素在flex容器中自动占用所有未被分配的剩余空间,不会和同层级的标题栏产生高度冲突,滚动区域的高度会自动适配外层容器的固定高度,就能实现正常的上下滚动,不会出现底部内容被截断的问题。
补充注意事项
- 如果滚动区域内部的内容贴边太近,可以给滚动区域加
px-1、py-2这类内边距调整样式,不会影响滚动逻辑 - 确保卡片上层的网格布局容器没有额外的高度溢出规则,避免高度约束失效
内容的提问来源于stack exchange,提问作者Martin Müsli
相关产品推荐
相关产品推荐

