Di bawah ini kita akan mempelajari cara membuat formulir responsif dengan CSS.
<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"> <style> * { box-sizing: border-box; } input[type=text], select, textarea { width: 100%; padding: 12px; border: 1px solid #ccc; border-radius: 4px; resize: vertical; } /* Style untuk label ditampilkan setelah input */label { padding: 12px 12px 12px 0; display: inline-block; } input[type=submit] { background-color: #4CAF50; color: white; padding: 12px 20px; border: none; border-radius: 4px; cursor: pointer; float: right; } input[type=submit]:hover { background-color: #45a049; } .container { border-radius: 5px; background-color: #f2f2f2; padding: 20px; } .col-25 { float: left; width: 25%; margin-top: 6px; } .col-75 { float: left; width: 75%; margin-top: 6px; } /* Hapus floats setelah kolom */.row:after { content: ""; display: table; clear: both; } /* Responsive layout - ketika layar kurang dari 600px lebarnya, buat dua kolom bertumpuk satu sama lain, bukan di samping satu sama lainr */@media screen and (max-width: 600px) { .col-25, .col-75, input[type=submit] { width: 100%; margin-top: 0; } } </style> </head> <body> <h2>Responsive Form</h2> <p>Ubah ukuran jendela browser untuk melihat efeknya. Saat layar kurang dari 600px lebarnya, buat dua kolom bertumpuk satu sama lain, bukan di samping satu sama lain.</p> <div class="container"> <form action="/action_page.php"> <div class="row"> <div class="col-25"> <label for="fname">Nama Depan</label> </div> <div class="col-75"> <input type="text" id="fname" name="firstname" placeholder="Nama Depanmu.."> </div> </div> <div class="row"> <div class="col-25"> <label for="lname">Nama Belakang</label> </div> <div class="col-75"> <input type="text" id="lname" name="lastname" placeholder="Nama Belakangmu.."> </div> </div> <div class="row"> <div class="col-25"> <label for="country">NEgara</label> </div> <div class="col-75"> <select id="country" name="country"> <option value="australia">Indonesia</option> <option value="canada">UK</option> <option value="usa">USA</option> </select> </div> </div> <div class="row"> <div class="col-25"> <label for="subject">Subjek</label> </div> <div class="col-75"> <textarea id="subject" name="subject" placeholder="Tulis sesuatu di sini.." style="height:200px"></textarea> </div> </div> <div class="row"> <input type="submit" value="Submit"> </div> </form> </div> </body> </html>
Langkah 1) Tambahkan HTML
Gunakan elemen <form>
untuk memproses inputan. Tambahkan inputan(dengan label yang cocok) untuk setiap field dan bungkus elemen <div>
di sekitar setiapdan inputan untuk menyetel lebar yang ditentukan dengan CSS:
Contoh
<form action="/action_page.php"> <div class="row"> <div class="col-25"> <label for="fname">Nama Depan</label> </div> <div class="col-75"> <input type="text" id="fname" name="firstname" placeholder="Nama Depanmu.."> </div> </div> <div class="row"> <div class="col-25"> <label for="lname">Nama Belakang</label> </div> <div class="col-75"> <input type="text" id="lname" name="lastname" placeholder="Nama Belakangmu.."> </div> </div> <div class="row"> <div class="col-25"> <label for="country">Negara</label> </div> <div class="col-75"> <select id="country" name="country"> <option value="australia">Indonesia</option> <option value="canada">UK</option> <option value="usa">USA</option> </select> </div> </div> <div class="row"> <div class="col-25"> <label for="subject">Subjek</label> </div> <div class="col-75"> <textarea id="subject" name="subject" placeholder="Tulis sesuatu di sini.." style="height:200px"></textarea> </div> </div> <div class="row"> <input type="submit" value="Submit"> </div> </form>
Langkah 2) Tambahkan CSS:
Contoh
/* Style inputs, select elements dan textareas */input[type=text], select, textarea{ width: 100%; padding: 12px; border: 1px solid #ccc; border-radius: 4px; box-sizing: border-box; resize: vertical; } /* Style untuk label ditampilkan setelah input */label { padding: 12px 12px 12px 0; display: inline-block; } /* Style untuk submit button */input[type=submit] { background-color: #4CAF50; color: white; padding: 12px 20px; border: none; border-radius: 4px; cursor: pointer; float: right; } /* Style untuk container */.container { border-radius: 5px; background-color: #f2f2f2; padding: 20px; } /* Floating kolom untuk label: lebar 25% */.col-25 { float: left; width: 25%; margin-top: 6px; } /* floating kolom untuk input: lebar 75% */.col-75 { float: left; width: 75%; margin-top: 6px; } /* Hapus floats setelah kolom */.row:after { content: ""; display: table; clear: both; } /* Responsive layout -ketika layar kurang dari 600px lebarnya, buat dua kolom bertumpuk satu sama lain, bukan di samping satu sama lain*/@media screen and (max-width: 600px) { .col-25, .col-75, input[type=submit] { width: 100%; margin-top: 0; } }