CSS3 & jQuery Tabs

19/03/2014

Việc sắp đặt nội dung gọn gàng luôn luôn là một phần việc quan trọng cho các bạn thiết kế web. Vì thế mà tabs luôn luôn là sự lựa chọn lý tưởng cho việc sắp đặt các nhóm cùng nội dung.

Trong bài viết này, mình xin chia sẻ cho các bạn cách tạo tabs đơn giản bằng jQuery và đặc biệt hơn là các tabs này được thiết kế rất đẹp với chỉ bằng các thuộc tính của CSS3 mà không cần phải dùng bất kì hình ảnh nào.

css3-jquery-tabs

Xem Demo | Download

HTML

Đầu tiên, chúng ta cần có mẫu html chứa các nội dung như sau :

<ul id="tabs">
    <li><a href="#" title="tab1">One</a></li>
    <li><a href="#" title="tab2">Two</a></li>
    <li><a href="#" title="tab3">Three</a></li>
    <li><a href="#" title="tab4">Four</a></li>
</ul>

<div id="content">
    <div id="tab1">One - content</div>
    <div id="tab2">Two - content</div>
    <div id="tab3">Three - content</div>
    <div id="tab4">Four - content</div>
</div>

CSS

Sau đó chúng ta sẽ sắp xếp nội dung cho gọn gàng với đoạn css sau :

#tabs {
  overflow: auto;
  width: 100%;
  list-style: none;
  margin: 0;
  padding: 0;
}

#tabs li {
    margin: 0;
    padding: 0;
    float: left;
}

#tabs a {
    box-shadow: -4px 0 0 rgba(0, 0, 0, .2);
    background: #ad1c1c;
    background: linear-gradient(220deg, transparent 10px, #ad1c1c 10px);
    text-shadow: 0 1px 0 rgba(0,0,0,.5);
    color: #fff;
    float: left;
    font: bold 12px/35px 'Lucida sans', Arial, Helvetica;
    height: 35px;
    padding: 0 30px;
    text-decoration: none;
}

#tabs a:hover {
    background: #c93434;
    background: linear-gradient(220deg, transparent 10px, #c93434 10px);
}

#tabs a:focus {
    outline: 0;
}

#tabs #current a {
    background: #fff;
    background: linear-gradient(220deg, transparent 10px, #fff 10px);
    text-shadow: none;
    color: #333;
}

#content {
    background-color: #fff;
    background-image:         linear-gradient(top, #fff, #ddd);
    border-radius: 0 2px 2px 2px;
    box-shadow: 0 2px 2px #000, 0 -1px 0 #fff inset;
    padding: 30px;
}

/* Remove the rule below if you want the content to be "organic" */
#content div {
    height: 220px;
}

jQuery

Việc cuối cùng là các bạn chỉ cần chèn đoạn jquery sau :

<script src="http://code.jquery.com/jquery-1.6.3.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
    $("#content div").hide(); // Initially hide all content
    $("#tabs li:first").attr("id","current"); // Activate first tab
    $("#content div:first").fadeIn(); // Show first tab content

    $('#tabs a').click(function(e) {
        e.preventDefault();
        $("#content div").hide(); //Hide all content
        $("#tabs li").attr("id",""); //Reset id's
        $(this).parent().attr("id","current"); // Activate this
        $('#' + $(this).attr('title')).fadeIn(); // Show content for current tab
    });
})();
</script>

Thế là xong, chúng ta đã có ngay một tabs rất đẹp để áp dụng vào chính website của mình rồi, sau đây là danh sách các trình duyệt sẽ hiển thị tốt tabs này :

css3-jquery-tabs-browser-support

Ngoài ra, các bạn cũng có thể tham khảo thêm bài viết Tạo Tab hiển thị nội dung với CSS & jQuery để biết thêm một cách tạo tabs khác, hoặc đơn giản là Từng bước tạo hiệu ứng Tabs với CSS3 .

Chúc các bạn thành công !

Tags:

Chuyên Mục:

Bài viết được đăng bởi webmaster

Nếu các bạn thấy bài viết hữu ích thì giúp mình Like cái nhé !