【问题标题】:Horizontal alignment of elements - Semantic-UI-react元素的水平对齐 - Semantic-UI-react
【发布时间】:2019-01-19 21:52:31
【问题描述】:

解决方案:将“内联”添加到 Form.Group。代码笔:https://codesandbox.io/s/88v6zl66q8

我正在语义 UI 中设置一个选择表单组来响应。但是水平对齐是关闭的,因此 Radio 选择项浮动在输入字段上方(参见附图)。

如何对齐它们?我更喜欢 Semantic-UI 的方式,而不是编写自定义 CSS(但我愿意接受建议)。谢谢!

https://i.imgur.com/IW1imch.png

将元素放入 Grid 或 Menu 容器时,并不能解决问题。

<Form.Group>
                <Form.Field>
                    <Radio />
                <Divider vertical hidden />
                </Form.Field>
                <Form.Field>
                    <Radio />
                </Form.Field>
                <Form.Field>
                    <Radio />
                </Form.Field>
                <Form.Field>
                    <Radio />
                </Form.Field>
                <Form.Field>
                    <Radio />
                </Form.Field>
                <Form.Field>
                    <Input/>
                </Form.Field>
            </Form.Group>

【问题讨论】:

    标签: reactjs semantic-ui semantic-ui-react


    【解决方案1】:

    我认为最简单的方法是将它们放入display: flex 容器中,并在其上设置align-items: center,如here 所述。

    【讨论】:

      【解决方案2】:

      不太确定,我是否明白你的意思。但是为了防止单选按钮漂浮在输入字段上方,您可以通过语义网格系统来排列它们:

      <Form>
        <Grid>
          <Grid.Column width={8} stretched verticalAlign="middle">
            <Form.Group inline className="no-margin">
              <Form.Field><Radio /></Form.Field>
              <Form.Field><Radio /></Form.Field>
              <Form.Field><Radio /></Form.Field>
              <Form.Field><Radio /></Form.Field>
              <Form.Field><Radio /></Form.Field>
             </Form.Group>
          </Grid.Column>
          <Grid.Column width={8}>
            <Form.Field>
              <Input
                label="Anden værdi"
                name="n"
                type='text'
                labelPosition='right'
              />
            </Form.Field>
          </Grid.Column>
        </Grid>
      </Form>
      

      因此,您可以使用verticalAlign="middle" 实现垂直对齐。 问题是,每个默认 Semantic` 字段都有一个边距。我们只能通过添加一个类并编写一个额外的 css 参数来克服这个问题:

      .no-margin {
        margin: 0 !important;
      }
      
      

      (参见代码笔:https://codesandbox.io/s/m3y9zpw358

      【讨论】:

      • 此解决方案不能解决问题。但是,从您的示例中可以清楚地看出,我要解决的问题是什么。 i.imgur.com/uN253J6.png Radio 应该水平对齐到输入框的中心。
      • 知道了。更新了我的答案。不幸的是,我没有找到不添加额外类的方法,因为语义组件带有默认值——在这种情况下是边距..
      • 我发现,如果您将所有表单元素包装在一个 Form.Group 中,并使用“内联”标签对其进行标记。无需添加自定义 CSS,您将获得相同的结果。 codesandbox.io/s/88v6zl66q8
      猜你喜欢
      • 2016-06-29
      • 1970-01-01
      • 2013-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-23
      • 1970-01-01
      相关资源
      最近更新 更多