How to create: Responsive forms
- Previous Page Stacked Form
- Next Page Pop-up Form
Learn how to use CSS to create responsive forms.
Responsive Forms
Adjust the size of the browser window to see the effect (on smaller screens, labels and input boxes will stack instead of being side by side):
How to create responsive forms
Step 1 - Add HTML:
Use the <form> element to handle input. You can learn more about it in our PHP tutorial.
Add input fields (with matching labels) and wrap each label and input with a <div> element to specify the width using CSS:
<div class="container"> <form action="action_page.php"> <div class="row"> <div class="col-25"> <label for="fname">First Name</label> </div> <div class="col-75"> <input type="text" id="fname" name="firstname" placeholder="Your name.."> </div> </div> <div class="row"> <div class="col-25"> <label for="lname">Last Name</label> </div> <div class="col-75"> <input type="text" id="lname" name="lastname" placeholder="Your last name.."> </div> </div> <div class="row"> <div class="col-25"> <label for="country">Country</label> </div> <div class="col-75"> <select id="country" name="country"> <option value="australia">Australia</option> <option value="canada">Canada</option> <option value="usa">USA</option> </select> </div> </div> <div class="row"> <div class="col-25"> <label for="subject">Subject</label> </div> <div class="col-75"> <textarea id="subject" name="subject" placeholder="Write something.." style="height:200px"></textarea> </div> </div> <div class="row"> <input type="submit" value="Submit"> </div> </form> </div>
Step 2 - Add CSS:
/* Set the style for input boxes, selection elements, and text areas */ input[type=text], select, textarea{ width: 100%; padding: 12px; border: 1px solid #ccc; border-radius: 4px; box-sizing: border-box; resize: vertical; } /* Set the style of the label to display it next to the input box */ label { padding: 12px 12px 12px 0; display: inline-block; } /* Set the style of the submit button */ input[type=submit] { background-color: #04AA6D; color: white; padding: 12px 20px; border: none; border-radius: 4px; cursor: pointer; float: right; } /* Set the style of the container */ .container { border-radius: 5px; background-color: #f2f2f2; padding: 20px; } /* Label float column: 25% width */ .col-25 { float: left; width: 25%; margin-top: 6px; } /* Input float column: 75% width */ .col-75 { float: left; width: 75%; margin-top: 6px; } /* Clear float after columns */ .row:after { content: ""; display: table; clear: both; } /* Responsive layout - When the screen width is less than 600px, stack the two columns instead of displaying them side by side */ @media screen and (max-width: 600px) { .col-25, .col-75, input[type=submit] { width: 100%; margin-top: 0; } }
Related Pages
Tutorial:HTML Form
Tutorial:CSS Form
- Previous Page Stacked Form
- Next Page Pop-up Form