Marketo forms, by default, have set widths for many elements including all the form fields, labels and even the form itself. If you’re embedding your form in a responsive landing page, you might want to make the form fully responsive as well. With a bit of CSS, you can make your one-column and two-column Marketo forms look great on every device.
Single Column Forms
Single column forms are easy to make responsive. All you have to do is override some pixel widths with percentage widths. Here’s a breakdown of what elements have to be updated. If you just want to copy and paste the final code click here to jump to the final CSS.
Change the form width to a percentage
Marketo will give the form a fixed pixel width by default, so the first step is to switch the width of the form to a percentage. I usually change the form width to 100% and define the container width for the form in the landing page template.
1 2 3 |
.mktoForm { width:100% !important; } |
Tip: Make sure you don’t leave out the !important declaration. Since Marketo adds width as an inline style to the form tag, this is the only way to override the inline styling.
Update .mktoFormRow, . mktoFormCol, .mktoButtonRow and .mktoFieldWrap to 100%
The next step is to update .mktoFormRow, .mktoButtonRow, . mktoFormCol and .mktoFieldWrap to 100%, like this:
1 2 3 |
.mktoFormRow, .mktoFieldWrap, .mktoFormCol, .mktoButtonRow { width:100%; } |
Update the form fields to a percentage
All of the form fields have a fixed pixel width as well. Just like the form element, you have to add the !important declaration for this as well to override the inlines styles Marketo outputs.
1 2 3 4 5 6 7 8 9 10 |
.mktoForm input[type=url], .mktoForm input[type=text], .mktoForm input[type=date], .mktoForm input[type=tel], .mktoForm input[type=email], .mktoForm input[type=number], .mktoForm textarea.mktoField, .mktoForm select.mktoField { width:100% !important; } |
Center the submit button
If you want to center the submit button on the form you can add this CSS:
1 2 3 4 5 6 |
.mktoButtonRow { text-align:center !important; } .mktoButtonWrap { margin-left:0 !important; } |
The final CSS
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
.mktoForm { width:100% !important; } .mktoFormRow, .mktoFieldWrap, .mktoFormCol, .mktoButtonRow { width:100%; } .mktoForm input[type=url], .mktoForm input[type=text], .mktoForm input[type=date], .mktoForm input[type=tel], .mktoForm input[type=email], .mktoForm input[type=number], .mktoForm textarea.mktoField, .mktoForm select.mktoField { width:100% !important; } .mktoButtonRow { text-align:center !important; } .mktoButtonWrap { margin-left:0 !important; } |
A note about field label widths
Field labels have fixed pixel widths as well. However, I usually leave it that way since it doesn’t usually impact the responsiveness of the form unless the labels are more than 300px wide. Label widths can be updated like this:
1 2 3 |
.mktoForm .mktoLabel { width:100% !important; } |
Two-Column Forms
Two-column forms are a bit more complicated than single column forms. I’ve tried many ways to achieve a two-column Marketo form, including adding javascript to add classes to different form elements, but I prefer the CSS method better.
Drag your form fields into two-columns in the form editor
The first step is to use the form editor to create the two-columns.
Change the form width to a percentage
1 2 3 |
.mktoForm { width:100% !important; } |
Update .mktoFormRow, .mktoButtonRow and .mktoFieldWrap to 100%
1 2 3 |
.mktoFormRow, .mktoFieldWrap, .mktoButtonRow { width:100%; } |
Update the form fields to a percentage
1 2 3 4 5 6 7 8 9 10 |
.mktoForm input[type=url], .mktoForm input[type=text], .mktoForm input[type=date], .mktoForm input[type=tel], .mktoForm input[type=email], .mktoForm input[type=number], .mktoForm textarea.mktoField, .mktoForm select.mktoField { width:100% !important; } |
Update the columns to a percentage width
1 2 3 |
.mktoFormCol { width:50%; } |
Add some padding between the two columns
1 2 3 4 5 6 7 |
.mktoFieldWrap { padding-right:10px !important; box-sizing: border-box; } .mktoFormCol:nth-child(even) .mktoFieldWrap { padding-right:0 !important; } |
Center the submit button
If you want to center the submit button on the form you can add this CSS:
1 2 3 4 5 6 |
.mktoButtonRow { text-align:center !important; } .mktoButtonWrap { margin-left:0 !important; } |
Add a media query to stack the columns on mobile
This example uses the same breakpoint as the default Marketo CSS. Feel free to change it based on your requirements.
1 2 3 4 5 6 7 8 |
@media only screen and (max-width: 480px) { .mktoFormCol { width:100% !important; } .mktoFieldWrap { padding-right:0 !important; } } |
The Final CSS
The final CSS for the two-column form.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
.mktoForm { width:100% !important; } .mktoFormRow, .mktoFieldWrap, .mktoButtonRow { width:100%; } .mktoForm input[type=url], .mktoForm input[type=text], .mktoForm input[type=date], .mktoForm input[type=tel], .mktoForm input[type=email], .mktoForm input[type=number], .mktoForm textarea.mktoField, .mktoForm select.mktoField { width:100% !important; } .mktoFormCol { width:50%; } .mktoFieldWrap { padding-right:10px !important; box-sizing: border-box; } .mktoFormCol:nth-child(even) .mktoFieldWrap { padding-right:0 !important; } .mktoButtonRow { text-align:center !important; } .mktoButtonWrap { margin-left:0 !important; } @media only screen and (max-width: 480px) { .mktoFormCol { width:100% !important; } .mktoFieldWrap { padding-right:0 !important; } } |
Questions?
Send them to me via email, send me a tweet @jennamolby, or leave a comment
I stumbled into here while trying to integrate a form for a client. This helped me get started, and saved some time. Thanks for posting!
I made an SCSS version of your styles, in-case it is useful :
https://gist.github.com/andymagill/a119bc1271cc5570ac92513a509f3cd1
Hello Jenna! Thank you for this awesome instruction. I’ve got an embedded, single input field Marketo form on my WordPress site, and I’ve been trying to figure out how to center that input field. The button is centered, but the field will not budge unless I use margins to push it over! Any ideas? Here’s one of the pages where I’m using the form: https://3dplatform.com/other-materials/
Hi Andrea, Adding this CSS to your form should center the input. .mktoForm .mktoRequiredField label.mktoLabel {
display:none;
}
.mktoForm .mktoGutter::before {
content:’*’;
color:red;
}
.mktoFieldWrap {
float:none !important;
margin:0 auto !important;
width:300px;
} Cheers, Jenna
This is a great article! Thank you so much!!
Has anyone tried 2 columns & 1 column field in the same form? I am trying to implement it where we capture first & last name in one row/two columns & email address in second row/1 column layout.
Any inputs will be appreciated!
Hi Sonali, Yes, I’ve done that before. Send an email to [email protected] with a link to your page and I can help you. Cheers, Jenna
Hey Jenna! Thank you for the article but I am also trying to accomplish the same as Sonali. Could you assist?
Can you please enhance the code for a three column form?
What CSS needs to be added?
Hi Stephan, You would need to drag your fields into three columns within the Marketo form editor and then update the line of CSS for .mktoFormCol to around 33% instead of 50%. Hope that helps!
Thanks Jenna,
This is exactly what i have been looking for, great article.