1
мар 10

Как да си направим табове "Tabs" с помоща на CSS & jQuery

Дали за удобство, дали за красота или просто защото някой иска да покаже какво може :) използването на табовете е доста разпространено напоследък. В този урок ще се опитам да ви покажа един от най лесните начини за направата на такива табове с няколко реда CSS, xHTML и малко JavaScript. Надявам се този урок да полезен не само за начинаещи, но и за напреднали.

Стъпка 1 - HTML и CSS

Първото нещо, което ще направим е да създадем HTML документ с име "index.htm". За този урок ще използваме тип на документа XHTML 1.0 Transitional. Ще използваме директория "css" от която ще заредим css файл с име "style.css", както и директория "js", от която ще заредим jQuery библиотеката "jquery-1.4.min.js" и файл с име "scripts.js" в който напишем няколко реда код, които ще ни помогнат за създаването да табовете.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>Как да си направим табове "Tabs" с помоща на CSS &amp; jQuery</title>
	<link rel="stylesheet" type="text/css" href="css/style.css" />

	<script type="text/javascript" src="js/jquery-1.4.min.js"></script>
	<script type="text/javascript" src="js/scripts.js"></script>
</head>
<body>
</body>
</html>

Следващата част от кода стои в бодито на документ-а.

HTML

<div class="container">
	<h1>Как да си направим табове "Tabs" с помоща на CSS &amp; jQuery</h1>
    <ul class="navi">
        <li><a href="#tab_content_1">What is Lorem Ipsum?</a></li>
        <li><a href="#tab_content_2">Why do we use it?</a></li>
        <li><a href="#tab_content_3">Where does it come from?</a></li>
        <li><a href="#tab_content_4">Where can I get some?</a></li>
    </ul>
    <div class="content">
        <div id="tab_content_1" class="single_content">
            <h2>What is Lorem Ipsum?</h2>
            <!-- Content -->
        </div>
        <div id="tab_content_2" class="single_content">
            <h2>Why do we use it?</h2>
			<!-- Content -->
        </div>
        <div id="tab_content_3" class="single_content">
            <h2>Where does it come from?</h2>
            <!-- Content -->
        </div>
        <div id="tab_content_4" class="single_content">
            <h2>Where can I get some?</h2>
			<!-- Content -->
        </div>
    </div>
</div>

CSS

body{background:#ffffff;font-family:Tahoma,Arial,Verdana,sans-serif;font-size:11px;line-height:1.2em;margin:0;padding:0}
.clr{clear:both;overflow:hidden;font-size:0;line-height:0;}
ul{list-style:none;margin:0;padding:0}
a,img{outline:none;margin:0;padding:0}
#page_bg { background: #F3F2F1;}

h1 { color:#8A7C75;font-size:16px;text-align:center;padding:20px 0;}
.container {width: 800px; margin: 0 auto;}
ul.navi {
	float: left;
	height: 28px;
	border-bottom: 1px solid #ccc;
	border-left: 1px solid #ccc;
	width: 100%;
}
ul.navi li {
	float: left;
	height: 27px;
	line-height: 26px;
	border: 1px solid #ccc;
	border-left: none;
	margin: 0 0 -1px;
	background: #D0CBC8;
	overflow: hidden;
}
ul.navi li a {
	text-decoration: none;
	color: #fff;
	display: block;
	font-size: 11px;
	font-weight:700;
	padding: 0 20px;
	border: 1px solid #fff;
}
ul.navi li a:hover {
	background: #B9B0AC;
}
ul.navi li.active a {
	color:#B9B0AC;
}
ul.navi li.active, ul.navi li.active a:hover {
	background: #fff;
	border-bottom: 1px solid #fff;
}
.content {
	border: 1px solid #ccc;
	border-top: none;
	clear: both;
	float: left;
	width: 100%;
	background: #fff;
}
.single_content {
	padding: 20px;
	font-size: 1.2em;
}
.single_content h2 {
	color:#B9B0AC;
	font-weight: normal;
	padding-bottom: 10px;
	font-size: 20px;
}
.single_content p {
	color:#999;
	margin:0 0 10px;
	font-size:11px;
	line-height:normal;
}

Стъпка 2 - Нека раздвижим табовете :)

За тези, които не са запознати с jQuery, може да разгледайте сайта им тук.
Следващото парче код съдържа коментари, които поясняват действията, които са били извършени.

$(document).ready(function() {
	//Action
	$('.single_content').hide(); //Скриваме всички елементи които имат клас "single_content"
	$('.navi li:first').addClass('active');//добавяме клас "active" на първият елемент "li", който се намира в елемент с клас "navi"
	$('.single_content:first').show();//показваме първият елемент с клас "single_content"

	//On Click Event
	$('.navi li').click(function() {
		$('.navi li').removeClass('active');//премахва клас "active" на всички елементи "li", който се намират в елемент с клас "navi"
		$(this).addClass('active');//добавя клас "active" елемента активирания елемент
		$('.single_content').hide();//Скрива всички елементи които имат клас "single_content"
		var activeTab = $(this).find('a').attr('href');
		$(activeTab).fadeIn(500);//показва елемента с ефект "fadeIn" за 500 мили секунди
	});
});

От опит знам, че човек първо гледа и после чете :) ето демо и файловете които съм използвал.

DemoDownload

One Response за "Как да си направим табове "Tabs" с помоща на CSS & jQuery"

  1. Joro казва:

    Супер, изглежда много леко и лесно за манипулация :) Определено ще го изтествам, а може и да го ползвам някъде.
    А сега си чакам поръчковия урок ;)

Отговор