Hướng dẫn horizontal pricing table html

Pricing Table là bảng báo giá, trong thực tế, ứng dụng mà chúng ta thường ngay gặp nhất về Pricing Table chính là mỗi khi cài đặt một phần mềm có nhiều gói khác nhau, mỗi bảng báo giá sẽ đại diện cho một gói với các chức năng khác nhau, các bạn xem ví dụ dưới đây:

Hướng dẫn horizontal pricing table html

Như hình ảnh ở trên, mỗi bảng Pricing Table sẽ thể hiện một số đặc điểm của gói cài đặt đó.

Ok vậy là chúng ta đã biết Pricing Table là gì, trong bài viết này chúng ta sẽ cùng nhau xây dựng Responsive Pricing Table có thể hiện thị tốt trên nhiều loại thiết bị.

1. Xây dựng giao diện

Đầu tiên chúng ta sẽ xây dựng các thành phần, các bạn tạo file index.html và dán đoạn mã sau vào trong thẻ body:

Code

Freetuts.net hướng dẫn tạo Responsive Pricing Table

  • Basic
  • $ 9.99 / year
  • 10GB Storage
  • 10 Emails
  • 10 Domains
  • 1GB Bandwidth
  • Sign Up
  • Pro
  • $ 24.99 / year
  • 25GB Storage
  • 25 Emails
  • 25 Domains
  • 2GB Bandwidth
  • Sign Up
  • Premium
  • $ 49.99 / year
  • 50GB Storage
  • 50 Emails
  • 50 Domains
  • 5GB Bandwidth
  • Sign Up

Trong ứng dụng này chúng ta sẽ tạo ra 3 bảng,  mỗi bảng sẽ đại diện cho một gói VPS khác nhau.

OK giờ chuyển qua bước tiếp theo.

2. Thêm CSS cho giao diện

Chúng ta đã có thành phần hiển thị rồi giờ sử dụng CSS để định dạng cho chúng, các bạn đặt đoạn CSS dưới đây vào bên trong thẻ style:

.container {
	width: 50%;
    margin: auto;
}
	* {
    box-sizing: border-box;
}

.columns {
    float: left;
    width: 33.3%;
    padding: 8px;
}

.price {
    list-style-type: none;
    border: 1px solid #eee;
    margin: 0;
    padding: 0;
    -webkit-transition: 0.3s;
    transition: 0.3s;
}

.price:hover {
    box-shadow: 0 8px 12px 0 rgba(0,0,0,0.2)
}

.price .header {
    background-color: #111;
    color: white;
    font-size: 25px;
}

.price li {
    border-bottom: 1px solid #eee;
    padding: 20px;
    text-align: center;
}

.price .grey {
    background-color: #eee;
    font-size: 20px;
}

.button {
    background-color: #4CAF50;
    border: none;
    color: white;
    padding: 10px 25px;
    text-align: center;
    text-decoration: none;
    font-size: 18px;
}

@media only screen and (max-width: 600px) {
    .columns {
        width: 100%;
    }
}

Các đoạn mã trên đều rất cơ bản, các bạn chỉ cần lưu ý đoạn mã:

@media only screen and (max-width: 600px) {
    .columns {
        width: 100%;
    }
}

Đây là đoạn mã cốt lõi sẽ quyết định việc hiển thị tốt trên nhiều kích thước màn hính khác nhau, nó có nghĩa là nếu trình duyệt có chiều dài nhỏ hơn 600px, thì độ dài mỗi bảng sẽ là 100% thay vì 33,3% như ở trên đã thiết lập. Các bạn nên lưu ý thuộc tính @media vì sau này khi viết cái website responsive các bạn sẽ còn gặp lại nó rất nhiều.

 Giờ các bạn chạy file index.html để xem thành quả mình vừa tạo ra nhé!

3. Lời kết

Như vậy, qua bài viết này mình đã cùng các bạn tạo Responsive Pricing Table với CSS. Hi vọng nó sẽ giúp các có thêm sự lựa chọn trong quá trình xây dựng website, nếu có bất cứ thắc mắc nào các bạn có thể để lại trong phần bình luận, hẹn gặp lại trong các bài viết tiếp theo trên freetuts.net.

Tham khảo: w3schools.com


Learn how to create a responsive pricing table with CSS.


  • $ 9.99 / year
  • 10GB Storage
  • 10 Emails
  • 10 Domains
  • 1GB Bandwidth
  • Sign Up

  • $ 24.99 / year
  • 25GB Storage
  • 25 Emails
  • 25 Domains
  • 2GB Bandwidth
  • Sign Up

  • $ 49.99 / year
  • 50GB Storage
  • 50 Emails
  • 50 Domains
  • 5GB Bandwidth
  • Sign Up

Try it Yourself »


How To Create a Responsive Pricing Table

Step 1) Add HTML:

Example


 

       
  • Basic

  •    
  • $ 9.99 / year

  •    
  • 10GB Storage

  •    
  • 10 Emails

  •    
  • 10 Domains

  •    
  • 1GB Bandwidth

  •    
  • Sign Up

  •  



Step 2) Add CSS:

Example

* {
  box-sizing: border-box;
}

/* Create three columns of equal width */
.columns {
  float: left;
  width: 33.3%;
  padding: 8px;
}

/* Style the list */
.price {
  list-style-type: none;
  border: 1px solid #eee;
  margin: 0;
  padding: 0;
  -webkit-transition: 0.3s;
  transition: 0.3s;
}

/* Add shadows on hover */
.price:hover {
  box-shadow: 0 8px 12px 0 rgba(0,0,0,0.2)
}

/* Pricing header */
.price .header {
  background-color: #111;
  color: white;
  font-size: 25px;
}

/* List items */
.price li {
  border-bottom: 1px solid #eee;
  padding: 20px;
  text-align: center;
}

/* Grey list item */
.price .grey {
  background-color: #eee;
  font-size: 20px;
}

/* The "Sign Up" button */
.button {
  background-color: #04AA6D;
  border: none;
  color: white;
  padding: 10px 25px;
  text-align: center;
  text-decoration: none;
  font-size: 18px;
}

/* Change the width of the three columns to 100%
(to stack horizontally on small screens) */
@media only screen and (max-width: 600px) {
  .columns {
    width: 100%;
  }
}

Try it Yourself »