Das <frame>-Tag erzeugt einen "Frame", der einfach gesagt ein Fenster in einem anderen Fenster ist. Wenn z.B. drei Fenster in einer HTML-Seite erscheinen sollen, müssen drei <frame>-Tags gesetzt werden und das frameset-Element muss den Raum für die drei Frames bestimmen.
Das <frame>-Tag kann nur zwischen dem öffnenden und schließenden <frameset>-Tag gesetzt werden.
Ein frame-Element kann jede Art von Inhalt darstellen, inklusive Formulare, Bilder, Multimedia-Elemente, anderer Frames, Tabellen usw. Jeder Inhalt, der darstellbar ist, kann innerhalb eines Frames abgebildet werden. Die einzige Methode, einem Frame Inhalte zuzuweisen, ist die Angabe einer URL im src-Attribut.
Frames können entweder in einer spalten- oder zeilenorientierten Darstellung konfiguriert werden, aber nicht gleichzeitig beide Konfigurationen zeigen. Die Konfiguration muss entweder das cols- oder das rows-Attribut im <frameset>-Tag setzen. Wenn es sich um eine Zeilenkonfiguration handelt, ist das erste Frame-Element das oberste Fenster, das zweite Frame-Element das zweite Fenster von oben usw. Für eine spaltenorientierte Konfiguration verläuft die Reihenfolge von links nach rechts.
Sie können <frameset>-Tags ineinander verschachteln. Das eröffnet die Möglichkeit, sehr komplexe Seitenstrukturen zu erzeugen.
Es gibt kein schließendes Tag.
| Kernattribute | class id style title |
| frameborder | Das Attribut frameborder legt einen Rahmen um den Frame oder entfernt ihn. Die möglichen Werte sind 0 oder no und 1 oder yes. Der Wert von yes oder 1 erlaubt die Darstellung eines Rahmens. Ein Wert von no oder 0 unterdrückt die Ausgabe eines Rahmens. |
| longdesc | Das Attribut longdesc ist die URL-Adresse eines HTML-Dokuments, das eine ausführlichen Beschreibung des Frames enthält. Das Attribut ist dafür gedacht, mehr Informationen zur Verfügung zu stellen, als das title-Element darstellen kann. |
| marginheight | Das Attribut marginheight setzt einen Abstand nach unten und nach oben zwischen Framerahmen und Inhalt und wird in Pixel angegeben. Bei unrealistischen Werten ignoriert der Browser das Attribut. |
| marginwidth | Das Attribut marginwidth setzt einen Abstand nach links und nach rechts zwischen Framerahmen und Inhalt und wird in Pixel angegeben. Wenn unrealistische Werte angegeben werden, ignoriert der Browser das Attribut. |
| name | Das Attribut name ist eine Zeichenfolge, die den Frame identifiziert. Der Name muss eindeutig sein und darf nur einmal im Dokument vorkommen. |
| noresize | Das Attribut noresize verhindert Änderungen der Framegröße durch den Benutzer. |
| scrolling | Das Attribut scrolling legt eine horizontale und vertikale Scrollleiste fest, die im Frame erscheint. Wenn der Inhalt größer ist als der Frame, erlaubt sie dem Besucher, aufwärts und abwärts oder nach rechts und links zu scrollen, um den gesamten Inhalt zu sehen. Die drei möglichen Werte sind: yes, womit festgelegt wird, dass stets eine Scrollleiste erscheint, no, womit nie eine Scrollleiste erscheint, und auto, das die Scrollleiste einspielt, wenn sie erforderlich ist. Wenn kein Wert angegeben wird, ist die Voreinstellung auto. |
| src | Das Attribut src gibt die URL-Adresse einer HTML-, ASP-, PHP- oder anderen Seite an. Der Inhalt der referenzierten URL wird im Frame dargestellt. |
Das folgende Beispiel zeigt einen Frameset mit fünf Frames. Beachten Sie bitte, dass die Frames nicht innerhalb eines <body>-Tags definiert werden.
<html>
<head>
<title>Fünf Frames</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<frameset cols="*,420,*" rows="3" border="0">
<frame src="links.html">
<frameset rows="*,300,*" cols="3" border="0">
<frame src="oben.html">
<frame src="inhalt.html">
<frame src="unten.html">
</frameset>
<frame src="rechts.html">
</frameset>
</html>