Gerald Wichmann
Gerald Wichmann

Reputation: 457

How to resolve text alignment issue in AntD form

I have an AntD Modal which has a Form that I'm struggling to align some text on. Here is what it looks like with the text highlighted in yellow. I would like it to be aligned with the first column where I've drawn the red box.

enter image description here

The section of code that contains the "personal information" text and the applicant form fields looks like this:

  <Form
    ref={this.formRef}
    {...formItemLayoutWithOutLabel}
    onFinish={onFinish}
    id="myForm"
    validateMessages={validateMessages}
    initialValues={{ applicants: [{ firstName: '' }] }}
  >
    {
      <Form.List name="applicants">
        {(fields, { add, remove }) => {
          return (
            <div>
              <Form.Item {...formItemLayout}}>
                <Row>
                  <Col span={24}>
                    Personal Information
                  </Col>
                </Row>
              </Form.Item>
              {fields.map((field, index) => (
                <Form.Item {...formItemLayout} label={`Applicant #${index + 1}`} key={field.key}>
                  <Row key={field.key} gutter={[0, 8]} justify="start">
                    <Col span={12}>
                      <Row gutter={[4, 4]}>
                        <Col span={7}>
                          <Form.Item name={[field.name, 'firstName']} fieldKey={[field.fieldKey, 'firstName']} rules={rules}>
                            <Input placeholder="First Name" ref={this.inputRef} />
                          </Form.Item>
                        </Col>

I thought perhaps if I set the label to a blank space it'd accomplish what I want on the form item and it does, but of course, the colon remains which I don't want. So I'm guessing this is not the right way to accomplish this and perhaps there's a better CSS route to go or something.

enter image description here

I'm looking for help on how to get the alignment that I want. Ultimately I'd also like to put "Employer Information" aligned with the right column over the employer information as well.

EDIT #1

Adding a simplified codesandbox of this problem here. Appreciate any ideas!

CodeSandBox

Upvotes: 0

Views: 7280

Answers (2)

FacePalm
FacePalm

Reputation: 11728

You can add labelCol and wrapperCol like below:

  <Form
    layout="horizontal"
    labelCol={{
      span: 6
    }}
    wrapperCol={{
      span: 18
    }}
    labelAlign="right"
  >
   ...
  </Form>

Upvotes: 0

LChuan
LChuan

Reputation: 363

There is an option for Form.Item to display the colon behind the label. You can check it out here

Disable it would accomplish what you want

<Form.Item {...formItemLayout} label=" " colon={false}>
  <Row gutter={[0, 8]} justify="start">
    <Col span={12}>Personal Information</Col>
    <Col span={12}>Employer Information</Col>
  </Row>
</Form.Item>

Upvotes: 1

Related Questions