You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Storybook中手动设置单个组件画布高度:画布过短致组件截断的问题求助

Storybook中手动设置单个组件画布高度:画布过短致组件截断的问题求助

我之前也碰到过一模一样的情况!给组件加position: absolute后,元素脱离了文档流,Storybook的画布就没法自动计算出正确的高度,直接缩成最小导致组件被截断。之前我试过给组件本身加height没用,后来用这几个方法解决了,给你参考:

  • 直接给单个Story配置画布高度(最推荐)
    Storybook支持给单个story单独设置参数,不用全局改动。你可以在导出的story对象里加parameters配置,直接指定画布的高度:

    export const Default = Template.bind({});
    Default.args = {
      // 你的组件参数
    };
    Default.parameters = {
      canvas: {
        height: '400px' // 这里设置你需要的高度
      }
    };
    

    如果你想让画布自适应但有最小高度,也可以用layout参数试试'padded'或者'fullscreen',不过直接指定高度最精准。

  • 给组件套一个占位容器
    因为绝对定位的元素不占文档流空间,你可以给组件外面包一个带最小高度的容器,让容器在文档流里占住空间,这样Storybook的画布就会跟着容器的高度走:

    template: '<div style="min-height: 400px; position: relative"><teaser style="position: absolute" v-bind="args" :image="args.image"/></div>',
    

    这里给容器加position: relative还能让组件的绝对定位相对于这个容器,避免组件跑到画布外面去,一举两得。

  • 检查组件的绝对定位逻辑
    如果你不需要组件完全脱离文档流,说不定可以换成position: relative或者调整布局逻辑,这样画布就能自动识别组件高度了,不过这个得看你的组件需求来定。

之前你给组件加height没用,就是因为绝对定位让组件脱离了文档流,Storybook的画布只会计算文档流内元素的高度,所以要么直接给画布设高度,要么给文档流里的容器设高度,这两个方法亲测有效!

备注:内容来源于stack exchange,提问作者J_R

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 12:13:00