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

调用hs-dialog时如何修改包裹React组件的Web组件CSS变量值

修改hs-dialog组件--test-border-radius变量值的方法

你在Base.tsx中定义的--test-border-radius是标准CSS自定义属性,支持从Web组件的宿主元素向下穿透Shadow DOM继承,调用组件时可以通过以下三种方式赋值:

  • 内联样式直接赋值(最常用,单组件单独配置)
    原生HTML调用写法:

    <hs-dialog style="--test-border-radius: 8px;"></hs-dialog>
    

    React/TSX环境调用写法:

    <hs-dialog style={{ '--test-border-radius': '8px' } as React.CSSProperties} />
    

    赋值规则和原生border-radius属性完全一致,支持传单值、多角不同值、百分比单位等写法,比如传12px 12px 0 0就是仅顶部两个角设圆角。

  • CSS选择器批量赋值(适合页面内多个同组件统一配置)
    在全局样式或父容器样式中添加以下规则即可:

    hs-dialog {
      --test-border-radius: 10px;
    }
    
  • JS动态修改(适合交互触发后动态调整圆角的场景)
    拿到hs-dialog的DOM实例后,调用setProperty方法修改变量值:

    const dialog = document.querySelector('hs-dialog');
    dialog.style.setProperty('--test-border-radius', '16px');
    

注意:不需要写Shadow DOM穿透选择器(比如::part、::deep这类),CSS自定义属性天然可以跨越Shadow DOM边界向下传递,直接在宿主元素上赋值就能被内部id为test的div读取到。

内容的提问来源于stack exchange,提问作者Chris Hansen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 17:48:18