Developing a tabs navigation with CSS holds some simple tricks, but most of the front-end guys end up getting the results in an inappropriate way. Here's what you need to know about it -
I. The margin-bottom: -1px to the <li> element
II. The border and background to the <a> element
III. Change in border and background in the <a> element when <li> has .active class
HTML:
CSS:
jQuery:
Demo: http://jsfiddle.net/dipaks2011/o35c8yxt/
Note: The fiddle demo is creating a ghost border on the right side of the tabs which doesn't appear in real HTML page.
I. The margin-bottom: -1px to the <li> element
II. The border and background to the <a> element
III. Change in border and background in the <a> element when <li> has .active class
HTML:
CSS:
ul{ margin: 0; padding: 0; list-style: none; border-bottom: 1px solid #ddd; } ul:before, ul:after{ content: ""; display: table; } ul:after{ clear: both; } /**/ ul li{ float: left; margin: 0 4px -1px 4px; /*Trick 1*/ } ul li a{ display: block; text-decoration: none; padding: 10px 15px; border: 1px solid transparent; /*Trick 2*/ background: transparent; /*Trick 2*/ } ul li a:hover{ background: #eee; } ul li.active a{ border-radius: 4px 4px 0 0; border: 1px solid #ddd; border-bottom: 1px solid transparent; /*Trick 3*/ background: #fff; /*Trick 3*/ }
jQuery:
$(function(){ $('li a').on('click', function(e){ e.preventDefault(); // to avoid page refresh because a elements have # in href $('li').removeClass('active'); $(this).parent('li').addClass('active'); }); });
Demo: http://jsfiddle.net/dipaks2011/o35c8yxt/
Note: The fiddle demo is creating a ghost border on the right side of the tabs which doesn't appear in real HTML page.