In this tutorial, I’ll show you the best way to create a two-column Pardot form. This is a follow up on my original post How to Create a 2 Column Pardot Form. By popular request, this new method includes a way to make certain form fields full width and is fully responsive. All you have to do is add CSS classes to your form fields and copy & paste the CSS provided into Pardot.

Add CSS classes to your form fields

The first step is to add CSS classes to your form fields. We will be using three different classes within the forms:

  1. form-col-1: Add this to form fields that will be in the left column.
  2. form-col-2: Add this to form fields that will be in the right column.
  3. form-col-full: Add this to form fields that you want in a single, full-width column.

To add a class to a form field, navigate to the fields tab of your form, click on the pencil icon to edit the form field. Then, click on the advanced tab and enter the class name in the CSS classes field.

Repeat this process until all form fields have one of the three classes. Here’s an outline of what my sample form looks like, where all the fields are in two columns except for the email field which is full width.

Edit the Form HTML

By default, every form field within your form will be wrapped in paragraph tags (<p></p>). This is not ideal when it comes to creating two-column forms, but it’s easy to update.

Navigate to your layout template and click on the Form tab. Change the paragraph tag to a DIV and close it right after the error message fields, as illustrated below.

Alternatively, replace the ENTIRE content within the form tab with the code below.

%%form-opening-general-content%% %%form-if-thank-you%% %%form-javascript-focus%% %%form-thank-you-content%% %%form-thank-you-code%% %%form-end-if-thank-you%% %%form-if-display-form%% %%form-before-form-content%% %%form-if-error%%

Please correct the errors below:

%%form-end-if-error%% %%form-start-loop-fields%%
%%form-if-field-label%% %%form-end-if-field-label%% %%form-field-input%% %%form-if-field-description%% %%form-field-description%% %%form-end-if-field-description%% %%form-field-if-error%%

%%form-field-error-message%%

%%form-field-end-if-error%%
%%form-end-loop-fields%% %%form-spam-trap-field%%

%%form-after-form-content%% %%form-end-if-display-form%% %%form-javascript-link-target-top%%

Add the CSS

Next, you need to add the following CSS in Pardot. You can add this in the layout template or within the form editor under look and feel > above form.


Here’s what my example form looks like with all the CSS added.



Questions?

Send me a tweet @jennamolby, leave a comment below, or book a Peer Chat.

Author

I'm a Freelance Marketing Operations Consultant With 15 years of experience in Marketing Operations, I’ve worked with a wide range of tools including Salesforce, Marketing Cloud Account Engagement (Pardot), Marketo, and many other sales and marketing platforms. I help teams optimize their tech stacks, improve processes, and get accurate, actionable reporting. Whether it’s setting up your Marketing Automation Platform, building Salesforce reports, managing lead lifecycles, tracking attribution, or integrating your tech stack, I ensure everything is aligned to drive real results.

93 Comments

  1. Hi, great to find someone so dedicated and willing to share. I just have one question. For required fields the error message shows up below the field on the left column and above the field for the right column. Any thoughts on this?
    Thanks!

    • Jenna Molby

      Hi Thomas, You’re welcome! The DIVS you added in your layout template might not be closed properly. Double check that and if you still have issues, email me at [email protected] and I can take a look. Cheers, Jenna

  2. What an incredibly easy to follow guide! Thank you, very helpful. Made my day 🙂

  3. Hi Jenna – thanks heaps for this blog (and a few others of yours). I’m relatively new to front-end stuff and totally new to Pardot – you saved me hours!

    • Jenna Molby

      Thanks so much! Cheers, Jenna

  4. Hi Jenna!

    I love your tutorials! Extremely helpful!

    I played around with this code to allow my to set up 2 columns where needed – worked great. I also had the field labels showing in the fields as placeholders which also worked great – thank you! But when I added this 2-column code, all the field labels reverted to above the field boxes. Does this mean I can only have one or the other?

    • Jenna Molby

      Hi Kevin, So happy you like my tutorials! If you are using this code along with the code for the placeholder text, you will need to modify this line var labels = document.querySelectorAll(“p.pd-text label, p.pd-select label, p.pd-textarea label”); to this var labels = document.querySelectorAll(“.pd-text label, .pd-select label, .pd-textarea label”);. Cheers, Jennna

  5. Wenda McMahan Reply

    I have tried pasting the style (flanked with <style> and </style> in both the “Above Form” tab of the “Look and Feel” section of my form and the bottom of the “Form” tab of the actual layout template code. I am using the first example, replacing the <p> with </div>, deleting the </p> after the form code, and adding an </div> after the %%form-field-end-if-error%%.

    The first version includes the styling text in the form. The second one does not, but neither of them create two columns. Any ideas? It seems like many fans of this post have gotten it to work. Thank you!

    • Jenna Molby

      Hi Wenda, Sorry it’s not working for you. Please email me at [email protected] with a link to your form or landing page and I can help you troubleshoot. Cheers, Jenna

Write A Comment