如何强制Office UI Fabric ChoiceGroup水平对齐

Den*_*uhn 3 css typescript office-js spfx

我正在尝试构建一个包含ChoiceGroup的SPFx Webpart。当我将CSS样式设置为垂直对齐时:ms-sm12

Show assigned to:
o anyone
* me
o nobody
Run Code Online (Sandbox Code Playgroud)

我喜欢它们在一行中水平对齐:

Show assigned to: o anyone * me o nobody
Run Code Online (Sandbox Code Playgroud)

当我将样式设置ms-sm6为时,它会将它们“混合”对齐:将Slider和Toggle设置为ms-sm3

Show assigned to: o anyone
* me
o nobody
Run Code Online (Sandbox Code Playgroud)

混合的

有了ms-sm4它看起来像:

ms-sm4

使用ms-sm3,时ms-sm2,ms-sm1看起来(标题越来越紧,并且所有选项都在一个列中:

在此处输入图片说明

如何强制/鼓励将选项水平呈现?

小智 5

请按照以下步骤操作:

1)创建新的.scss文件

例如:fabric.scss并将该类粘贴到其中。

  .inlineflex .ms-ChoiceField{
      display: inline-block;
   }
Run Code Online (Sandbox Code Playgroud)

2)在您的组件中提供引用,例如:

  import  './fabric.scss';
Run Code Online (Sandbox Code Playgroud)

3)添加组件并应用类。

  <ChoiceGroup 
                className="inlineflex"
                label='Pick one icon'
                options={ [
                {
                    key: 'day',                        
                    text: 'Day'
                },
                {
                    key: 'week',                        
                    text: 'Week'
                },
                {
                    key: 'month',                        
                    text: 'Month'                       
                }
                ] }
             /> 
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你,我只需要在 `.ms-ChoiceField` 前面加上 `:global` 前缀。我的 css 现在看起来像 `.inlineflex { :global .ms-ChoiceField { display: inline-block; } }` (2认同)

Sha*_*tel 5

另一个不需要添加 CSS 的选项是将样式直接应用于控件:

  1. 将flexContainer样式设置为display:flex。
  2. 您会注意到选项末尾可能需要一个空格,我添加了一个不间断空格作为 \u00A0

    <ChoiceGroup selectedKey={valueType}
    styles={{ flexContainer: { display: "flex" } }} options={[
    { key: 'specific', text: 'selected\u00A0\u00A0' },
    { key: 'relative', text: 'relative' }]} />
    
    Run Code Online (Sandbox Code Playgroud)

完毕!