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

如何修改Fluent UI的primary或secondary文本颜色?

问题原因
  • 你编写的CSS规则存在语法错误:color属性的取值"red"多了多余的双引号,CSS中颜色关键字不需要包裹引号,该规则本身无法生效。
  • Persona 组件的次级文本由内部独立的子元素承载,自带.ms-Persona-secondaryText默认样式类,预设了字体颜色规则,样式优先级高于你给组件根节点设置的color属性,因此根节点的样式无法向下覆盖到次级文本。
  • 你当前定义的.noLongerWorks类仅作用于组件根容器,没有命中实际承载secondaryText的子元素。
解决方案

方案1:调整CSS规则(适合需要全局统一管控样式的场景)

先修正CSS语法,同时调整选择器精准命中次级文本元素,可按需添加!important提升优先级覆盖默认样式:

.noLongerWorks .ms-Persona-secondaryText {
    color: red;
}

同时建议修改组件className的赋值逻辑,避免条件不满足时传入false值被错误渲染:

<Persona
    text="{User.displayName}"
    secondaryText={User.currentEmployee === 'true' && 'No longer works'}
    size={PersonaSize.size48}
    imageUrl={'/_layouts/15/userphoto.aspx?size=S&accountname=' + this.props.User.name}
    className={User.currentEmployee === 'true' ? 'noLongerWorks' : ''}
/>

方案2:使用组件原生styles属性配置(更推荐)

Fluent UI Persona组件原生支持传入styles属性,可直接为各个子模块自定义样式,无需额外编写全局CSS,也不存在样式优先级冲突问题:

<Persona
    text="{User.displayName}"
    secondaryText={User.currentEmployee === 'true' && 'No longer works'}
    size={PersonaSize.size48}
    imageUrl={'/_layouts/15/userphoto.aspx?size=S&accountname=' + this.props.User.name}
    styles={{
        secondaryText: {
            color: User.currentEmployee === 'true' ? 'red' : 'inherit'
        }
    }}
/>

内容的提问来源于stack exchange,提问作者Ömer Keskinkilic

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 05:24:09