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

How to force Office UI Fabric ChoiceGroup to align horizontal

我正在尝试构建一个包含 ChoiceGroupSPFx webpart。当我将 css 样式设置为 ms-sm12 时,选项垂直对齐:

Show assigned to:
o anyone
* me
o nobody

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

Show assigned to: o anyone * me o nobody

当我将样式设置为 ms-sm6 时,它们会对齐 "mixed": SliderToggle 设置为 ms-sm3

Show assigned to: o anyone
* me
o nobody

ms-sm4 看起来像:

使用 ms-sm3ms-sm2ms-sm1 看起来像(标题越来越压扁,所有选项都在一列中:

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

按照以下步骤操作:

1) 创建新的 .scss 文件

例如:fabric.scss 并将此 class 粘贴到其中。

  .inlineflex .ms-ChoiceField{
      display: inline-block;
   }

2) 在你的组件中给出像这样的引用:

  import  './fabric.scss';

3) 添加组件并应用 class.

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

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

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

    <ChoiceGroup selectedKey={valueType}
    styles={{ flexContainer: { display: "flex" } }} options={[
    { key: 'specific', text: 'selected\u00A0\u00A0' },
    { key: 'relative', text: 'relative' }]} />
    

完成!

  1. 将样式 属性 添加到 ChoiceGroup styles={{ flexContainer: { display: "flex" } }}
  2. 将样式 属性 添加到选项样式:{ choiceFieldWrapper: { display: 'inline-block', margin: '0 0 0 10px' }}

完成!

const options: IChoiceGroupOption[] = [
      { key: 'conforme', text: 'Conforme'},
      { key: 'noConforme', text: 'No conforme', styles:{field: { marginLeft: "15px"}}}
    ];
<ChoiceGroup styles={{ flexContainer: { display: "flex" } }}  options={options}  />