Anleitung: Erstellen einer Tab-Box mit YUI Tabs

Avatar of Chris Coyier
Chris Coyier am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

tabbed-box-header.jpg

Tab-Boxen sind heutzutage sehr beliebt. Schauen Sie sich den Bereich "Explore" auf MSNBC oder das Premium News Theme an, um zu sehen, wie sie in einem Blog-Umfeld eingesetzt werden können. Ich denke, das aus gutem Grund. Es ermöglicht Ihnen, mehr Inhalte auf einer Seite mit weniger Unordnung hinzuzufügen und gleichzeitig Besucher zu einer Interaktion mit der Website zu bewegen. Außerdem macht es einfach Spaß.

Beachten Sie, wie diese "Tab-Boxen" funktionieren. Sie ändern den Inhalt innerhalb der Box **sofort**, wenn Sie auf einen neuen Tab klicken – kein Nachladen vom Server erforderlich. Das liegt daran, dass der Inhalt für alle Tabs beim Laden der Seite geladen wird, aber versteckt bleibt, bis der entsprechende Tab angeklickt wird.

Mit der Yahoo! UI Tab View ist das Erstellen einer Tab-Box wirklich ziemlich einfach. Hier ist, wie es geht.

1. Fügen Sie die Javascript-Dateien auf Ihrer Seite ein.

...
	<script type="text/javascript" src="//yui.yahooapis.com/2.5.0/build/yahoo-dom-event/yahoo-dom-event.js"></script>
	<script type="text/javascript" src="//yui.yahooapis.com/2.5.0/build/element/element-beta-min.js"></script>
	<script type="text/javascript" src="//yui.yahooapis.com/2.5.0/build/connection/connection-min.js"></script>
	<script type="text/javascript" src="//yui.yahooapis.com/2.5.0/build/tabview/tabview-min.js"></script>
</head>

<body>
	<script type="text/javascript">
	var myTabs = new YAHOO.widget.TabView("content-explorer");
	</script>
...

2. Fügen Sie das Markup für die Box hinzu.

<div id="content-explorer">
			
	<ul class="yui-nav">
		<li class="selected"><a href="#">Articles</a></li>
		<li><a href="#">Photos</a></li>
		<li><a href="#">Video</a></li>
		<li><a href="#">Leprechaun</a></li>
	</ul>

	<div class="yui-content">
		<div>
			...
		</div>
		<div>
			...
		</div>
		<div>
			...
		</div>
		<div>
			...
		</div>
		<div>
			...
		</div>
	</div>
</div>

Alles in diesem Markup ist wichtig für die Funktion, einschließlich aller ID- und Klassennamen für alle Elemente. Beachten Sie, dass es vier Listenelemente im "yui-nav" und vier Divs im "yui-content" gibt, was ebenfalls wichtig ist. Diese sollten immer gleichmäßig übereinstimmen.

3. Stylen Sie mit CSS

#content-explorer {
	padding-top: 20px;
	width:100%;
	line-height:normal;
	}
	#content-explorer ul {
		padding: 10px 10px 0;
		list-style: none;
		max-width: 770px;
		background: url(images/menu_bg.gif) bottom repeat-x;
		height: 31px;
		}
		#content-explorer ul li {
			float: left;
			background: url(images/right.gif) right top no-repeat;
			text-align: center;
			overflow: hidden;
			margin-left: 5px;
			}
			#content-explorer ul li a {
				display: block;
				background: url(images/left.gif) left top no-repeat;
				padding: 10px 20px 6px 20px;
				font-weight: bold;
				color: #999;
			}
			#content-explorer ul li a:hover {
				color: #990000;
			}
			#content-explorer ul li.selected {
				background: url(images/right_cur.gif) right top no-repeat;
			}
			#content-explorer ul li.selected a {
				background: url(images/left_cur.gif) left top no-repeat;
				padding-bottom: 8px;
				color: #990000;
			}
div.yui-content {
	overflow: auto;
	border-bottom: 2px solid black;
	border-right: 2px solid black;
	border-left: 2px solid black;
	padding: 20px;
}

Das CSS ist Ihnen vollständig überlassen, es gibt keine Namensbeschränkungen wie im Markup. Machen Sie sich keine Sorgen um die Einstellung von Anzeigewerten, um den Inhalt der verschiedenen Tabs zu verbergen, das Javascript erledigt das automatisch für Sie.

Für mich ist das wirklich Coolste daran, wie flexibel das alles ist. Sie können alles tun, was Sie sich in diesen Divs im Inhaltsbereich vorstellen können.

[BEISPIELSEITE]

[BEISPIEL HERUNTERLADEN]