Di bawah ini kita akan mempelajari cara membuat check out form responsif dengan CSS.
Check Out Form
<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> <style> body { font-family: Arial; font-size: 17px; padding: 8px; } * { box-sizing: border-box; } .row { display: -ms-flexbox; /* IE10 */ display: flex; -ms-flex-wrap: wrap; /* IE10 */ flex-wrap: wrap; margin: 0 -16px; } .col-25 { -ms-flex: 25%; /* IE10 */ flex: 25%; } .col-50 { -ms-flex: 50%; /* IE10 */ flex: 50%; } .col-75 { -ms-flex: 75%; /* IE10 */ flex: 75%; } .col-25, .col-50, .col-75 { padding: 0 16px; } .container { background-color: #f2f2f2; padding: 5px 20px 15px 20px; border: 1px solid lightgrey; border-radius: 3px; } input[type=text] { width: 100%; margin-bottom: 20px; padding: 12px; border: 1px solid #ccc; border-radius: 3px; } label { margin-bottom: 10px; display: block; } .icon-container { margin-bottom: 20px; padding: 7px 0; font-size: 24px; } .btn { background-color: #4CAF50; color: white; padding: 12px; margin: 10px 0; border: none; width: 100%; border-radius: 3px; cursor: pointer; font-size: 17px; } .btn:hover { background-color: #45a049; } a { color: #2196F3; } hr { border: 1px solid lightgrey; } span.price { float: right; color: grey; } /* Responsive Layout - jika lebar layar kurang dari 800 piksel, buat dua kolom bertumpuk, bukan bersebelahan (juga ubah arah - buat kolom "cart" berada di atas) */ @media (max-width: 800px) { .row { flex-direction: column-reverse; } .col-25 { margin-bottom: 20px; } } </style> </head> <body> <h2>Responsive Checkout Form</h2> <p>Ubah ukuran jendela browser untuk melihat efeknya. Ketika layar kurang dari 800px lebarnya, buat dua kolom bertumpuk satu sama lain, bukan bersebelahan.</p> <div class="row"> <div class="col-75"> <div class="container"> <form action="/action_page.php"> <div class="row"> <div class="col-50"> <h3>Billing Address</h3> <label for="fname"><i class="fa fa-user"></i> Full Name</label> <input type="text" id="fname" name="firstname" placeholder="John M. Doe"> <label for="email"><i class="fa fa-envelope"></i> Email</label> <input type="text" id="email" name="email" placeholder="john@example.com"> <label for="adr"><i class="fa fa-address-card-o"></i> Alamat</label> <input type="text" id="adr" name="address" placeholder="542 W. 15th Street"> <label for="city"><i class="fa fa-institution"></i> Kota</label> <input type="text" id="city" name="city" placeholder="New York"> <div class="row"> <div class="col-50"> <label for="state">Negara</label> <input type="text" id="state" name="state" placeholder="NY"> </div> <div class="col-50"> <label for="zip">Zip</label> <input type="text" id="zip" name="zip" placeholder="10001"> </div> </div> </div> <div class="col-50"> <h3>Pembayaran</h3> <label for="fname">Kartu yang Diterima</label> <div class="icon-container"> <i class="fa fa-cc-visa" style="color:navy;"></i> <i class="fa fa-cc-amex" style="color:blue;"></i> <i class="fa fa-cc-mastercard" style="color:red;"></i> <i class="fa fa-cc-discover" style="color:orange;"></i> </div> <label for="cname">Nama di kartu</label> <input type="text" id="cname" name="cardname" placeholder="John More Doe"> <label for="ccnum">Nomor kartu kredit</label> <input type="text" id="ccnum" name="cardnumber" placeholder="1111-2222-3333-4444"> <label for="expmonth">Bulan Kedaluwarsa</label> <input type="text" id="expmonth" name="expmonth" placeholder="September"> <div class="row"> <div class="col-50"> <label for="expyear">Tahun Kedaluwarsa</label> <input type="text" id="expyear" name="expyear" placeholder="2018"> </div> <div class="col-50"> <label for="cvv">CVV</label> <input type="text" id="cvv" name="cvv" placeholder="352"> </div> </div> </div> </div> <label> <input type="checkbox" checked="checked" name="sameadr"> Alamat pengiriman sama dengan billing </label> <input type="submit" value="Continue to checkout" class="btn"> </form> </div> </div> <div class="col-25"> <div class="container"> <h4>Cart <span class="price" style="color:black"><i class="fa fa-shopping-cart"></i> <b>4</b></span></h4> <p><a href="#">Product 1</a> <span class="price">$45</span></p> <p><a href="#">Product 2</a> <span class="price">$10</span></p> <p><a href="#">Product 3</a> <span class="price">$20</span></p> <p><a href="#">Product 4</a> <span class="price">$25</span></p> <hr> <p>Total <span class="price" style="color:black"><b>$100</b></span></p> </div> </div> </div> </body> </html>
Cara Membuat Check Out Form
Langkah 1) Tambahkan HTML
Gunakan elemen <form> untuk memproses inputan.
Contoh
<div class="row">
<div class="col-75">
<div class="container">
<form action="/action_page.php">
<div class="row">
<div class="col-50">
<h3>Billing Address</h3>
<label for="fname"><i class="fa fa-user"></i> Full Name</label>
<input type="text" id="fname" name="firstname" placeholder="John M. Doe">
<label for="email"><i class="fa fa-envelope"></i> Email</label>
<input type="text" id="email" name="email" placeholder="john@example.com">
<label for="adr"><i class="fa fa-address-card-o"></i> Alamat</label>
<input type="text" id="adr" name="address" placeholder="542 W. 15th Street">
<label for="city"><i class="fa fa-institution"></i> Kota</label>
<input type="text" id="city" name="city" placeholder="New York">
<div class="row">
<div class="col-50">
<label for="state">State</label>
<input type="text" id="state" name="state" placeholder="NY">
</div>
<div class="col-50">
<label for="zip">Zip</label>
<input type="text" id="zip" name="zip" placeholder="10001">
</div>
</div>
</div>
<div class="col-50">
<h3>Pembayaran</h3>
<label for="fname">Kartu yang Diterima</label>
<div class="icon-container">
<i class="fa fa-cc-visa" style="color:navy;"></i>
<i class="fa fa-cc-amex" style="color:blue;"></i>
<i class="fa fa-cc-mastercard" style="color:red;"></i>
<i class="fa fa-cc-discover" style="color:orange;"></i>
</div>
<label for="cname">Nama di kartu</label>
<input type="text" id="cname" name="cardname" placeholder="John More Doe">
<label for="ccnum">Nomor kartu kredit</label>
<input type="text" id="ccnum" name="cardnumber" placeholder="1111-2222-3333-4444">
<label for="expmonth">Bulan Kedaluwarsa</label>
<input type="text" id="expmonth" name="expmonth" placeholder="September">
<div class="row">
<div class="col-50">
<label for="expyear">Tahun Kedaluwarsa</label>
<input type="text" id="expyear" name="expyear" placeholder="2018">
</div>
<div class="col-50">
<label for="cvv">CVV</label>
<input type="text" id="cvv" name="cvv" placeholder="352">
</div>
</div>
</div>
</div>
<label>
<input type="checkbox" checked="checked" name="sameadr"> Alamat pengiriman sama dengan billing
</label>
<input type="submit" value="Continue to checkout" class="btn">
</form>
</div>
</div>
<div class="col-25">
<div class="container">
<h4>Cart <span class="price" style="color:black"><i class="fa fa-shopping-cart"></i> <b>4</b></span></h4>
<p><a href="#">Product 1</a> <span class="price">$15</span></p>
<p><a href="#">Product 2</a> <span class="price">$5</span></p>
<p><a href="#">Product 3</a> <span class="price">$8</span></p>
<p><a href="#">Product 4</a> <span class="price">$2</span></p>
<hr>
<p>Total <span class="price" style="color:black"><b>$30</b></span></p>
</div>
</div>
</div>Langkah 2) Tambahkan CSS:
Gunakan CSS Flexbox untuk membuat layout responsif:
Contoh
.row {
display: -ms-flexbox; /* IE10 */
display: flex;
-ms-flex-wrap: wrap; /* IE10 */
flex-wrap: wrap;
margin: 0 -16px;
}
.col-25 {
-ms-flex: 25%; /* IE10 */
flex: 25%;
}
.col-50 {
-ms-flex: 50%; /* IE10 */
flex: 50%;
}
.col-75 {
-ms-flex: 75%; /* IE10 */
flex: 75%;
}
.col-25,
.col-50,
.col-75 {
padding: 0 16px;
}
.container {
background-color: #f2f2f2;
padding: 5px 20px 15px 20px;
border: 1px solid lightgrey;
border-radius: 3px;
}
input[type=text] {
width: 100%;
margin-bottom: 20px;
padding: 12px;
border: 1px solid #ccc;
border-radius: 3px;
}
label {
margin-bottom: 10px;
display: block;
}
.icon-container {
margin-bottom: 20px;
padding: 7px 0;
font-size: 24px;
}
.btn {
background-color: #4CAF50;
color: white;
padding: 12px;
margin: 10px 0;
border: none;
width: 100%;
border-radius: 3px;
cursor: pointer;
font-size: 17px;
}
.btn:hover {
background-color: #45a049;
}
a {
color: #2196F3;
}
hr {
border: 1px solid lightgrey;
}
span.price {
float: right;
color: grey;
}
/* Responsive Layout - jika lebar layar kurang dari 800 piksel, buat dua kolom bertumpuk, bukan bersebelahan (juga ubah arah - buat kolom "cart" berada di atas) */
@media (max-width: 800px) {
.row {
flex-direction: column-reverse;
}
.col-25 {
margin-bottom: 20px;
}
}