Hướng dẫn tab css beautiful

Ngày hôm nay chúng ta sẽ đi vào tìm hiểu cách tạo thẻ tab và thêm hiệu ứng animation cho nó bằng HTML CSS và Javascript nhé!

Tạo Cấu Trúc Cho Component Tab

Phần đầu tiên chúng ta sẽ đi vào tạo hai file là index.html[nơi lưu trữ HTML] và style.css[nơi lưu trữ mã CSS]. Sau đó liên kết chúng với Font Awesome v4.7 và Google Font thông qua đoạn mã dưới đây nhé:

HTML


  
  
      
      
      Tạo Component Tab
      
      
      
      
 
 
 
 

Tạo Cấu Trúc Cho Component Tab

Trong phần này chúng ta sẽ đi vào thêm các thẻ HTML cần thiết để tạo component tab thông qua đoạn mã sau nhé:

HTML


    
    
         Trang Chủ

        
 Về Chúng Tôi 

        
 Dịch Vụ

        
 Liên Hệ

    
    
    
     
    
        
            

Phần Tab Thể Hiện Trang Chủ


            

Lorem ipsum dolor sit amet consectetur...


        
        

            

Phần Tab Thể Hiện Về Chúng Tôi


            

Lorem ipsum dolor sit amet consectetur...


        

        

            

Phần Tab Thể Hiện Về Dịch Vụ


            

Lorem ipsum dolor sit amet consectetur...


        

        

            

Phần Tab Thể Hiện Về Liên Hệ


            

Lorem ipsum dolor sit amet consectetur...


        

    
    

Và kết quả bạn xem hình ảnh bên dưới nha:

Thiết Lập Vị Trí Cho Tab

Trong phần này chúng ta sẽ đi vào thiết lập một số thuộc tính CSS tổng quát cho component tab như là font chữ, vị trí trong trang web, padding, độ bo góc... Để hiểu rõ hơn bạn xem đoạn code sau nhé:

CSS

body{
    background: #ddd;
    font-family: Roboto;
}
.tab{
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate[-50%, -50%];
    width: 500px;
    height: 250px;
    background: #f5f5f5;
    padding: 20px 30px;
    overflow: hidden;
    border-radius: 50px;
    box-shadow: 0 1px 1px rgba[0,0,0,0.12],
    0 2px 2px rgba[0,0,0,0.12],
      0 4px 4px rgba[0,0,0,0.12],
    0 8px 8px rgba[0,0,0,0.12],
    0 16px 16px rgba[0,0,0,0.12];
}

Và kết quả bạn xem hình ảnh bên dưới nhé:

Thiết Lập Style Cho Tab Header

Trong phần tiếp theo bạn hãy cùng mình đi vào thiết lập lại style cho tab header để các thành phần trong nó có thể nằm thẳng hàng với nhau và nhìn có tính thẩm mỹ hơn nhé :

CSS

.tab .tab-header{
    height: 60px;
    display: flex;
    align-items: center;
}
.tab .tab-header > div{
    width: calc[100% / 4];
    text-align: center;
    color: #888;
    font-weight: 500;
    cursor: pointer;
    font-size: 16px;
    text-transform: uppercase;
    outline: none;
}
.tab .tab-header > div > i {
    display: block;
    margin-bottom: 5px;
}
.tab .tab-header > div.active{
    color: #00acee;
}

Và kết quả bạn xem hình bên dưới nha:

Thêm CSS cho Thẻ Tab Body

Trong phần này chúng ta sẽ đi vào thiết lập CSS cho hai thành phần .tab-indicator[Thanh Tiến Trình Cho Tab] và .tab-body[Nội Dung Của Thẻ Tab] thông qua đoạn code dưới đây nhé:

CSS

.tab .tab-indicator {
    position: relative;
    width: 25%;
    height: 5px;
    background: #00acee;
    left: 0px;
    border-radius: 5px;
    transition: all 500ms ease-in-out;
}
.tab .tab-body{
    position: relative;
    height: calc[100% - 60px];
    padding: 10px 5px;
}
.tab .tab-body > div{
    position: absolute;
    top: -200%;
    opacity: 0;
    margin-top: 5px;
    transform: scale[0.9];
    transition: opacity 500ms ease-in-out 0ms,
                transform 500ms ease-in-out 0ms;
}
.tab .tab-body > div.active{
    top: 0px;
    opacity: 1;
    transform: scale[1];
    margin-top: 0px;
}

Và kết quả bạn xem dưới đây nha:

Thêm Chức Năng Cho Tab Bằng Javascript

Sau khi đã thiết kế xong phần giao diện thì bước tiếp theo chúng ta sẽ thêm chức năng cho component tab thông qua đoạn mã Javascript sau nhé:

Javascript

/*Lấy Các Phần Tử Trong Thẻ DOM*/
let tabHeader = document.getElementsByClassName["tab-header"][0];
let tabIndicator = document.getElementsByClassName["tab-indicator"][0];
let tabBody = document.getElementsByClassName["tab-body"][0];
let tabsPane = tabHeader.getElementsByTagName["div"];
/*Thực Hiện Vòng Lặp*/
for [let i = 0; i 

Chủ Đề