Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

112
Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009

Transcript of Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

Page 1: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

Computer AG

Schiller-Gymnasium

Witten

Thomas SchmidtOktober 2008

2008/2009

Page 2: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

Ziele der Computer-AG

• HTML lernen

• JavaScript lernen

• Eigene Web-Seiten erstellen

Page 3: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

HTML

Page 4: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

Was ist HTML

HTML ist eine Sprache zur Formulierung von Dokumenten

•wird für die Gestaltung von Web-Seiten verwendet

Statische Formatierung Dynamische Formatierung

•beherrscht statische und dynamische Formatierungen

•wurde bereits vor dem Internet erfunden

Page 5: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

Werkzeuge zur Erstellung von HTML-Seiten

• Zeileneditoren Editor von Windows

HTML-Kit

• HTML Editoren HTML-Kit

• Anwendungen mit einer grafischen Oberfläche Frontpage Word

Wie kann man HTML-Seiten herstellen

Page 6: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

HTML - Grundlagen - Zeilendatei

Eine HTML-Datei besteht aus einzelnen Textzeilen

Zeile 1Zeile 2...Zeile ...

Page 7: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

HTML - Grundlagen - Tags

HTML-Dateien werden mittels sogenannter „Tags“ formuliert

• Ein Tag besteht aus Buchstaben und ist in spitze Klammern eingeschlossen: <title>

• Zu fast allen Tags gibt es einen Anti-Tag der Form: </title>

• Informationen werden in Tag-Paare eingeklammert: <title> Ich bin ein Titel </title>

Page 8: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

HTML - Grundlagen - <html>

Jede HTML-Seite ist in das Tag-Paar <html> ... </html> eingefasst

<html> hier stehen alle Informationen der Seite...</html>

Page 9: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

HTML - Grundlagen - <body> und <head>

Jede Seite verfügt mindestens über die Tags <head> und <body>

<html> <head> ... Kopfinformation ... </head> <body> ... Seiteninformation ... </body></html>

Page 10: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

HTML - Grundlagen - Dateiumbruch

Zeilenumbrüche haben keine Bedeutung – sie dienen nur der Lesbarkeit

<html><head>...</head><body>...</body></html>

<html> <head> ... </head> <body> ... </body></html>

ist gleichbedeutend mit

Page 11: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

<html> <head> <title>Meine erste Seite</title> </head> <body> <h1>Überschrift</h1> Hier sehen wir den Text der ersten Webseite. </body></html>

Beispiel

TitelÜberschrift

Textkörper

Page 12: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

<body>

<h1>Bellum civile (Julius Caesar)</h1> <p> Anno 50, Pompeius ei pro consule exeunti ut Romam rediret et copias dimitteret imperavit. Senatus praeterea ei consulatum secundum in absentia petere interdixit. </p>

<p>Caesar cognovit se accusatum iri si Romam sine immunitate consulari aut viribus legionum rediisset. Senatum prohibuit quin pararet, fines Italiae per Rubiconem 10 Ianuarii anno 49 traiciendo, dicens alea iacta est.</p>

</body>

HTML - Absätze

Page 13: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

<body> <h1>Zutaten für Zabajone</h1> <ul> <li>Marsala (Italienischer Süßwein)</li> <li>Eier</li> <li>Zucker</li> </ul> </body>

HTML - Listen

Page 14: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

<body> <h1>Hervorhebungen im Text</h1> <ul> <li>Dieser Text ist <u>unterstrichen</u></li> <li>Dieser Text ist <b>fett</b></li> <li>Dieser Text ist <i>kursiv</i></li> <li>Dieser Text ist <i><u><b>alles</b></u></i></li> </ul> </body>

HTML - Hervorhebungen

Page 15: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

<body> <h1>Bilder anzeigen</h1> <p> Außer Text kann ein Browser natürlich auch Bilder anzeigen. Bilder sind rechteckige Gebilde, die sich beim Formatieren wie große Buchstaben verhalten. Folgendes Bild zeigt eine Möhre: </p>

<img src=“moehre.jpg“> </body>

HTML - Bilder

Page 16: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

<body> <img src="moehre.jpg"> <img src="moehre.jpg" title="Ich bin ein Tooltip"> <img src="moehre.jpg" title="Ich bin ein Tooltip" alt="Zeig mich wenn kein Bild da ist"> </body>

HTML - Tags mit Attributen

• Nahezu alle <Tags> können Attribute haben

• Attribute haben immer die Form: Name="Text "

• Mehrere Attribute trennt man durch Leerzeichen oder White-Space-Zeichen

• Fehlerhafte Attribute werden ignoriert

• Attribute die auf mehrere Tags anwendbar sind, heißen Universalattribute

Page 17: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

Literaturhinweis

http://de.selfhtml.org/

Page 18: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

Styles

Page 19: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

HTML - Styles

• Schriften

• Farben

• Optische Gestaltung

• Positionierung

Styles dienen der optischen Gestaltung von Seiten

Styles haben keinen Einfluss auf Inhalte und Funktionen!

Page 20: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

<body style="background-color:yellow"> ... </body>

HTML - Styles - Hintergrundfarbe

Page 21: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

<body style="font-family:arial"> ... </body>

HTML - Styles - Schriftfamilien

Page 22: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

<body style="font-family:arial; font-size:30px"> ... </body>

HTML - Styles - Schriftgrößen

Page 23: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

<body style="font-family:arial; color:blue"> ... </body>

HTML - Styles - Schriftfarbe

Page 24: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

HTML - Styles - Syntax

• Styles werden als Attribut <tag style="...... "> formuliert

• Jeder einzelne Style hat die Form: typ:wert

• Mehrere Styles werden durch Semikola getrennt

Beispiel:

<body style="font-family:arial; color:blue">

Page 25: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

<body style="font-family:arial; color:white; background-image:url(moehre.jpg)"> ... </body>

HTML - Styles - Hintergrundbilder

Page 26: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

<body style="background-image: url(moehre.jpg); background-repeat: repeat-x"> ... </body>

HTML - Styles - Bildwiederholung

repeat in beiden Richtungen wiederholen (Voreinstellung).repeat-x nur "eine Zeile lang" waagerecht wiederholen.repeat-y nur "eine Spalte lang" senkrecht wiederholen.no-repeat nicht wiederholen, nur als Einzelbild anzeigen.

Page 27: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

<body style="background-image: url(verlauf.gif); background-repeat: repeat-y"> ... </body>

HTML - Styles - Verläufe

Ein Verlauf ist ein Bild, das nur ein Pixel hoch oder breit ist.

Page 28: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

<body> <div style="position:absolute; left:50px; top:70px; height:120px; width:400px; background-color:yellow;"> </div>

</body>

HTML - Styles - Explizites Positionieren

Page 29: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

<body>

<div style="position: absolute; left: 50px; top: 70px; height: 120px; width: 400px; background-color: yellow;">

<div style="position:absolute; left: 20px; top: 20px; height: 30px; width: 200px; background-color: red;"> </div>

</div>

</body>

HTML - Styles - Verschachteltes Positionieren

Page 30: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

<body style="font-family:arial; font-size:16"> <div style="position:absolute; left:30px; top:30px; height:190px; width:300px; background-color:yellow;">

<div style="font-size:18">Der Ring des Polykrates</div> <br> <div>Er stand auf seines Daches Zinnen<br>und schaute mit vergnügten Sinnen<br>auf das beherrschte Samos hin.</div> <br> <div>Dies alles ist mir untertänig<br>begann er zu Ägyptens König.<br>Gestehe, dass ich glücklich bin.</div>

</div> </body>

HTML - Styles - Positionieren mit Text

Page 31: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

<div style="position:absolute; left:20; top:10; height:180; width:300; background-color:yellow; padding: 10px;>

....

</div>

HTML - Styles - Innenabstand

Page 32: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

<div style="position:absolute; left:20; top:10; height:180; width:300; background-color:yellow; padding:10px; border-style: solid; border-width: 1px; border-color: green"> ....

</div>

HTML - Styles - Rahmen

Page 33: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

HTML - Styles - Unterschiede in den Browsern

Internet Explorer: Innenabstand und Rahmen liegen innerhalb des durch height und width definierten Rechtecks.

Die Darstellung von Innenabstand und Rahmen ist abhängig vom Browser

Mozilla Firefox: Innenabstand und Rahmen werden zu height und width dazuaddiert.

Firefox verhält sich konform zum Standard

Page 34: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

HTML - Styles - Überblick

• Schriften

• Hintergründe

• Innenabstände

• Rahmen

• Positionen

• Gestaltungen (z.B. Aufzählungszeichen)

Überblick über alle Gestaltungsmöglichkeiten mit Styles

Literatur über Styles: http://de.selfhtml.org/navigation/css.htm

Page 35: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

HTML - Style-Klassen

Wenn man ein Design mehrfach benötigt,kann man verschiedene Styles zu einer Klasse gruppieren.

Beispiel

Klasse

Hintergrundfarbe Schriftart Innenabstand Rand

Page 36: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

HTML - Style-Klassen - Definition und Verwendung

<head> <style type="text/css"> .box {background-color:yellow; position:absolute; padding:10px; border-style:solid; border-width:1; border-color:green} </style></head>

Deklaration

<body> <div class="box" style="left:20; top:10; height:180; width:300;"> </div> <div class="box" style="left:370; top:10; height:180; width:300;"> </div></body>

Verwendung

Page 37: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

HTML - Style-Klassen - Deklarieren

Style-Klassen werden im <head> Tag defniert

<head> <style type="text/css"> .mybody {font-family:arial; font-color:black; font-size:16; background-color:lightyellow} </style></head>

Alle Klassen werden zwischen <style> ... </style> abgelegt

Die Syntax ist: .klassenname {style1; style2; ...}

Page 38: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

<head> <style type="text/css"> .mybody {font-family:arial; color:darkblue; font-size:16; background-color:lightyellow} .kasten {background-color:yellow; position:absolute; padding:10px; border-style:solid; border-width:1; border-color:green} .header {font-size:20;} </style></head>

HTML - Style-Klassen - Vererbung

<body class="mybody"> <div class="kasten" style="left:20; top:10; height:180; width:300;"> <div class="header">Die Made</div> <p> Hinter eines Baumes Rinde<br>sitzt die Made mit dem Kinde.<br> Sie ist Witwe denn der Gatte,<br>den sie hatte,<br>fiel vom Blatte. </p> </div>

... Hier kommt noch der zweite Kasten ...</body>

Page 39: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

HTML - Style-Klassen-Dateien - Nutzen

• Das komplette Design eines Web-Auftritts ist zentral definiert

• Das Design kann variiert werden, ohne Inhalte zu verändern

• Das Design kann auf einem ganz anderen Server liegen

• Designs können mehrfach verwendet werden

Die Deklaration von Styles kann auch in einer separaten Datei erfolgen

Worin liegt der Nutzen von Style-Klassen-Dateien

Style-Klassen

HTML

Page 40: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

<head> <link rel=stylesheet type="text/css" href="computerag.css"></head>

HTML - Style-Klassen- Dateien - Aufbau

.mybody {font-family:arial; color:darkblue; font-size:16; background-color:lightyellow}

.kasten {background-color:yellow; position:absolute; padding:10px; border-style:solid; border-width:1; border-color:green}

.header {font-size:20;}

Klassendatei computerag.css

Page 41: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

HTMLLinks

Page 42: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

<body style="font-family:arial; font-size:18; background-color: #99ccff">

<h1>Meine ersten Links</h1>

<a href="http://www.schiller-witten.de">Schiller-Gymnasium</a><br> <a href="http://www.ruhr-gymnasium.de">Ruhr-Gymnasium</a><br> <a href="http://www.vfl-bochum.de">VfL Bochum</a><br> <a href="ersteseite.html">Meine erste Seite</a><br> </body>

HTML - Links

Page 43: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

HTML - Links - Ziele

Das Ziel eines Links kann sein

Seite im Web http://www.computer-ag.info

Datei seite.html

Dateiim Unterordner ordner/seite.html

Page 44: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

HTMLTabellen

Page 45: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

<table border="1">

<tr> <td>Name</td> <td>Vorname</td> <td>Straße</td> <td>Ort</td> </tr>

<tr> <td>Schmidt</td> <td>Thomas</td> <td>Auf der Marta 1</td> <td>58452 Witten</td> </tr>

<table>

HTML - Tabellen

Page 46: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

HTML - Tabellen - Titelzeile

<table border="1">

<tr style="font-weight:bold"> <td>Name</td> <td>Vorname</td> <td>Straße</td> <td>Ort</td> </tr>

<tr> <td>Schmidt</td> <td>Thomas</td> <td>Auf der Marta 1</td> <td>58452 Witten</td> </tr>

<table>

Page 47: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

HTML - Tabellen - Innenabstand

<table border="1" cellpadding="6">

<tr style="font-weight:bold"> <td>Name</td> <td>Vorname</td> <td>Straße</td> <td>Ort</td> </tr>

<tr> <td>Schmidt</td> <td>Thomas</td> <td>Auf der Marta 1</td> <td>58452 Witten</td> </tr>

<table>

Page 48: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

HTML - Tabellen - Zellenabstand

<table border="1" cellpadding="6" cellspacing= "0">

<tr style="font-weight:bold"> <td>Name</td> <td>Vorname</td> <td>Straße</td> <td>Ort</td> </tr>

<tr> <td>Schmidt</td> <td>Thomas</td> <td>Auf der Marta 1</td> <td>58452 Witten</td> </tr>

<table>

cellspacing=0

Page 49: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

HTML - Tabellen - Zellenabstand

<table border="1" cellpadding="6" cellspacing= "10">

<tr style="font-weight:bold"> <td>Name</td> <td>Vorname</td> <td>Straße</td> <td>Ort</td> </tr>

<tr> <td>Schmidt</td> <td>Thomas</td> <td>Auf der Marta 1</td> <td>58452 Witten</td> </tr>

<table>

cellspacing=0 cellspacing=10

Page 50: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

HTML - Tabellen - Größe und Ausrichtung

<table border="1" cellpadding="6" cellspacing="0" style="width:700px" align="center">

<tr style="font-weight:bold"> <td>Name</td> <td>Vorname</td> <td>Straße</td> <td>Ort</td> </tr>

<tr> <td>Schmidt</td> <td>Thomas</td> <td>Auf der Marta 1</td> <td>58452 Witten</td> </tr>

<table>

Page 51: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

HTML - Tabellen - Prozentuale Größe

<table border="1" cellpadding="6" cellspacing="0" style="width:80%" align="center">

<tr style="font-weight:bold"> <td>Name</td> <td>Vorname</td> <td>Straße</td> <td>Ort</td> </tr>

<tr> <td>Schmidt</td> <td>Thomas</td> <td>Auf der Marta 1</td> <td>58452 Witten</td> </tr>

<table>

Page 52: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

HTML - Tabellen - Zellengröße

<table border="1" cellpadding="6" cellspacing="0" style="width:100%">

<tr style="font-weight:bold"> <td style="width:50%">Name</td> <td>Vorname</td> <td>Straße</td> <td>Ort</td> </tr>

<tr> <td>Schmidt</td> <td>Thomas</td> <td>Auf der Marta 1</td> <td>58452 Witten</td> </tr>

<table>

Page 53: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

HTML - Tabellen - Leere Zellen

<table border="1" cellpadding="6" cellspacing="0" style="width:80%">

<tr style="font-weight:bold"> <td>Name</td> <td>Vorname</td> <td>Straße</td> <td>Ort</td> </tr>

<tr> <td>Schmidt</td> <td>Thomas</td> <td> </td> <td>58452 Witten</td> </tr>

<table>

&nbsp;

Page 54: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

HTML - Tabellen - Alternierende Farben

<table class="table" border="1" cellpadding="6" cellspacing="0">

<tr class="tb-head"> <td>Datum</td> <td>Zeit</td> <td style="width:300px">Termin</td> </tr>

<tr class="tb-gerade"> <td>08.04.2008</td> <td>20:00</td> <td>Geburtstagsfeier Karl-Heinz</td> </tr>

<tr class="tb-ungerade"> <td>09.04.2008</td> <td>09:00</td> <td>Mails beantworten</td> </tr>

<tr class="tb-gerade"> <td>11.04.2008</td> <td>20:00</td> <td>Sportschau gucken</td> </tr>

<tr class="tb-ungerade"> <td>13.04.2008</td> <td>13:00</td> <td>Computer-AG</td> </tr></table>

<style type="text/css">

.table {font-size:14} .tb-head {background-color: #bbccff; font-weight:bold} .tb-gerade {background-color: #ffff80} .tb-ungerade {background-color: #ffffe0}

</style>

Klassen

Page 55: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

HTML - Strukturieren von Seiten mit Tabellen

Page 56: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

HTMLFrames

Page 57: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

HTML - Frames - Grundlagen

Kopfbereich

Restbereich

Menübereich

Info-Bereich

Page 58: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

HTML - Frames - Vertikale Teilung

<html> <head> <title>Frames</title> </head>

<frameset rows="100px,*" frameborder="0" border="0" framespacing="0"> <frame name="head" src="frame-head.html" scrolling="no" frameborder="0"/> <frame name="info" src="frame-info.html" scrolling= "auto" frameborder="0"/> </frameset>

</html>

Page 59: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

HTML - Frames - Horizontale Teilung

<html> <head> <title>Frames</title> </head>

<frameset cols="216px,*" frameborder="0" border="0" framespacing="0"> <frame name="menu" src="frame-menu.html" scrolling="no" frameborder="0"/> <frame name="info" src="frame-info.html" scrolling= "auto" frameborder="0"/> </frameset>

</html>

Page 60: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

HTML - Frames - Vertikale und horizontale Teilung

<frameset rows="100px,*" frameborder="0" border="0" framespacing="0"> <frame name="head" src="frame-head.html" scrolling="no" frameborder="0" >

<frameset cols="218,*" border="0" framespacing="0" rows="*" frameborder="0"> <frame name="menu" src="frame-menu.html" scrolling="no" frameborder="0" /> <frame name="info" src="frame-info.html" scrolling="yes" frameborder="0" /> </frameset></frameset>

Page 61: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

HTML - Frames - Zielangabe bei Links

Link Link

<a href="mein-link.html" target= "info"> Link </a>

Page 62: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

HTML - Frames - Nutzen

Frames werden in der Hauptsache für Menüs benutzt

Frames: Worin liegt der Nutzen

Page 63: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

HTML - Frames - Programmier-Tips

• Jeder Frame ist eine eigenständige HTML-Seite

• Quelltextanzeige zeigt aktuellen Frame

• Bei Links muss der Ziel-Frame definiert werden

Frames: Wichtig beim Programmieren

Page 64: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

HTMLFormulare

Page 65: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

HTML - Formulare - Eigenschaften

• Formulare sind interaktiv

• Formulare bestehen aus mehreren Eingabeelementen

Page 66: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

<form> <div>Name</div> <input type="text" name="name" size="15" > </input>

<div>Vorname</div> <input type="text" name="vorname" size="15" />

</form>

HTML - Formulare - Eingabefelder

Die Längenangabe erfolgt in Zeichen

Page 67: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

<div style="position:absolute; left:30px; top:20px"> Name<br> <input type="text" name="name" size="15" /></div>

<div style="position:absolute; left:160px; top:20px"> Vorname<br> <input type="text" name="vorname" size="15" /></div>

HTML - Formulare - Eingabefelder mit expliziter Position

Page 68: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

<input type="checkbox" name="kleingedrucktes"/>Ich habe das Kleingedruckte gelesen

HTML - Formulare - Checkboxen

Page 69: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

<input type="radio" name="geschlecht" value="m"/>männlich<br>

<input type="radio" name="geschlecht" value="w"/>weiblich<br>

HTML - Formulare - Radiobuttons

• Radiobuttons werden über den Namen assoziiert und gruppiert• Die Zuordnung eines Wertes erfolgt über das Attribut: value="Wert"

Page 70: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

<select name="art" size="1">

<option> Bankeinzug </option> <option> Rechnung </option> <option> Kreditkarte </option> <option> Nachname </option>

</select>

HTML - Formulare - Comboboxen

Page 71: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

<select name="art" size= "4">

<option> Bankeinzug </option> <option> Rechnung </option> <option> Kreditkarte </option> <option> Nachname </option>

</select>

HTML - Formulare - Listboxen

Page 72: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

• Eingabefelder: <input type="text" name="name" value="Thomas" />

• Checkboxen: <input type="checkbox" name="kleingedrucktes" checked />

• Radiobuttons: <input type="radio" checked />

• Comboboxen: <option selected> Kreditkarte </option>

HTML - Formulare - Vorbesetzungen

Page 73: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

JavaScript

Page 74: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

Javascript

• JavaScript ist eine Programmiersprache

• Hat nichts mit der Sprache Java zu tun

• Skriptsprachen dienen zur Steuerung von Anwendungen

Page 75: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

Javascript - Ein erstes Beispiel

Beispiel

<button onclick="myprog()">Fenster anzeigen</button>

Ereignis, das das Programm startet

<script language="javascript"> function myprog() { alert ("Ich bin ein Text"); }

</script>

Das Programm selbst steht im <head>

JavaScript-Befehl: alert

Page 76: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

Javascript - Hintergrundfarben setzen

<script language="javascript">

function machrot() { rect.style.backgroundColor = "red"; }

function machgelb() { rect.style.backgroundColor = "yellow"; }

</script>

<div id="rect" style="position:absolute; left:20; top:20;height:100px; width:245px;background-color:white"></div>

<button onclick="machrot()"> Mach rot </button>

<button onclick="machgelb()"> Mach gelb </button>

Page 77: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

Javascript - Funktionen mit Parametern

<div id="rect" style="position:absolute; left:20; top:20;height:100px; width:245px;background-color:white"></div>

<button onclick="machbunt ('red')"> Mach rot </button>

<button onclick="machbunt ('yellow')">Mach gelb</button>

function machbunt (farbe) { rect.style.backgroundColor = farbe; }

Die Funktion erhält einen Parameter

Page 78: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

Javascript - Zusammenfassung

• Definieren von Funktionen in <head>

• Aufrufen von Funktionen

• Funktionen mit Parametern

• Aufrufen von JavaScript bei dem Event: onclick

Was können wir bereits

Page 79: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

<div id="rect" onmouseover="machbunt ('red')" onmouseout="machbunt ('yellow')"></div>

Javascript - Event - onmouseover

Durch onmouseover ändert sich die Farbe wenn man das Element mit der Maus betritt.Aber die Farbe bleibt, wenn man es wieder verlässt.

Durch onmouseout kann man die Farbe wieder entfernen, wenn man das Element wieder verlässt.

Page 80: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

Javascript - Bildwechsel bei onmouseover

<img id="bild" src="moehre.jpg" onmouseover=" bild.src='apfel.jpg' " onmouseout=" bild.src='moehre.jpg' ">

Page 81: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

Javascript - Bildgrößenänderung bei onmouseover

<img id="bild" src="moehre.jpg" style="position:absolute; left:100; top:100; width:100„ onmouseover = "bild.style.width=222" onmouseout = "bild.style.width=100">

Page 82: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

Javascript - Zentrierte Bildgrößenänderung

<img id="bild1" src="moehre.jpg" style="position:absolute; left:50; top:100; height:150; width:100" onmouseover = "bild1.style.width=150; bild1.style.height=225; bild1.style.left=25; bild1.style.top=75" onmouseout = "bild1.style.width=100; bild1.style.height=150; bild1.style.left=50; bild1.style.top=100">

<img id="bild2" src="moehre.jpg" style="position:absolute; left:170; top:100; height:150; width:100" onmouseover = "bild2.style.width=150; bild2.style.height=225; bild2.style.left=145; bild2.style.top=75" onmouseout = "bild2.style.width=100; bild2.style.height=150; bild2.style.left=170; bild2.style.top=100">

Page 83: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

Javascript - Berechnete Bildanordnung

Wir schreiben eine Funktion setbild

Wie kann man das Anordnen von Bildern vereinfachen?

• Berechnet die Position der Bilder• Bläst die Bilder beim Überstreichen mit der Maus auf • Hebt die Bilder in den Vordergrund

Page 84: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

Javascript - Berechnete Bildanordnung - Funktion setbild

<img id="0" src="moehre.jpg" onload="setbild (this);">

<img id="1" src="apfel.jpg" onload="setbild (this);">

<img id="2" src="eis.jpg" onload="setbild (this);">

Die Anordnung erfolgt anhand der ID

Die Anordnung erfolgt beim Laden der Seite

Die Anordnung erfolgt mittels der Funktion setbild

Page 85: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

Javascript - Berechnete Bildanordnung - Funktion setbild

// Diese Funktion platziert das Bild, das als objekt übergeben wird anhand seiner id// Das Bild mit der ID=0 wird als erstes angeordnet// Das Bild mit der ID=1 rechts daneben, u.s.w.

function setbild (o) { // Festlegen der Design-Parameter width = 100; height = 150; abstand = 20; lrand = 50; orand = 100;

// Hole die nummer des bildes als zahl nr = parseInt (o.id);

// Ermittele den linken Rand (den leiten wir aus der Bildnummer ab) x = nr * (width + abstand) + lrand;

// Ermittele den oberen Rand (das ist leicht - der ist immer gleich y = orand;

// Bildposition und Bildgröße werden in das Bildobjekt gesetzt o.style.width = width; o.style.height = height; o.style.left = x; o.style.top = y; o.style.position = "absolute"; }

Page 86: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

Javascript - Berechnete Bildanordnung - Bild aufblasen

<img id="0" src="moehre.jpg" onload="setbild (this, false)" onmouseover="setbild (this, true)" onmouseout="setbild (this, false)">

<img id="1" src="apfel.jpg" onload="setbild (this, false)" onmouseover="setbild (this, true)" onmouseout="setbild (this, false)">

<img id="2" src="eis.jpg" onload="setbild (this, false)" onmouseover="setbild (this, true)" onmouseout="setbild (this, false)">

setbild bekommt einen zweiten Parameter

true = aufblasenfalse = normal darstellen

Page 87: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

Javascript - Berechnete Bildanordnung - Funktion setbild

function setbild (o, big){.....

// Wenn das Bild groß sein soll, blasen wir es auf

if (big)

{

width = 150; // Breite wird 150 statt 100

height = 225; // Höhe wird 225 statt 150

x = x - 25; // x-position um 25 (das ist die Hälfte der Verbreiterung) nach links

y = y - 37; // y-position um 25 (das ist die Hälfte der Erhöhung) nach oben

}

}

Page 88: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

Javascript - Bild in den Vordergrund heben

// Normalerweisesetzen wir den z-index auf 1zindex = 1;

// Wenn das Bild groß sein soll, setzen wir den z-index auf 2

if (big)

{

.....

zindex = 2;

}

// Beim setzen der Bildposition wird dann auch der z-index gesetzt

o.style-zIndex = zindex;

Page 89: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

Javascript - Bildanordnung in mehreren Zeilen

bilderProZeile = 4;

Neue Variable bilderProZeile

spalte = nr % bilderProZeile; // % bedeutet: Rest beim Teilen durch

zeile = (nr - spalte) / bilderProZeile; // (nr – spalte) ist immer durch bilderProZeile teilbar

Ausrechnen der Zeile und Spalte

Page 90: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

Javascript - Bildanordnung in mehreren Zeilen

spalte = nr % 4;

zeile = (nr - spalte) / 4;

Beispiel für 4 Bilder pro Zeile

nr spalte nr - spalte zeile

0 0 0 0

1 1 0 0

2 2 0 0

3 3 0 0

4 0 4 1

5 1 4 1

6 2 4 1

7 3 4 1

0 1 2 3

Zeile 0

4 5 6 7Zeile 1

Page 91: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

Javascript - Berechnete Bildanordnung - Funktion setbild

function setbild (o) { // Festlegen der Design-Parameter width = 100; height = 150; abstand = 20; lrand = 50; orand = 100; bilderProZeile = 4

// Hole die nummer des bildes als zahl nr = parseInt (o.id);

// Ermittele Zeile und Spalte des Bildes (Zählung ab 0) spalte = nr % bilderProZeile; zeile = (nr - spalte) / bilderProZeile;

// Ermittele den linken Rand (den leiten wir aus der Bildspalte ab) x = spalte * (width + abstand) + lrand;

// Ermittele den oberen Rand (den leiten wir aus der Bildzeile ab) y = zeile * (height + abstand) + orand;

// Bildposition und Bildgröße werden in das Bildobjekt gesetzt o.style.width = width; o.style.height = height; ... }

Neue Variable bilderProzeile

zeile und spalte berechnen

spalte statt nr für die x-Position

y-Position aus Zeile berechnen

Page 92: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

Javascript - Hintergrundbild mit Größenanpassung

<body onresize="sizebgr()" onload="sizebgr()" style="font-family:arial">

Page 93: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

Javascript - Hintergrundbildanpassung - Funktion sizebgr

function sizebgr () { bgrimg.style.left = 0; bgrimg.style.top = 0; bgrimg.style.height = document.body.clientHeight; bgrimg.style.width = document.body.clientWidth; bgrimg.style.position = "absolute"; }

Höhe und Breite des Browserfensters

Achtung wenn man ein fensterfüllendes Bild verwendet:

• Man muss alles andere explizit anordnen• Der Browser platziert sonst alles unterhalb des Bildes (und das ist immer außerhalb)

Page 94: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

Javascript - Timer - Beispiel: Laufendes Bild

Javascript verfügt über sogenannte Timer (Zeitgeber)

• Ein Timer ruft eine vorgegebene Funktion in festen Zeitabständen auf

• Ein Timer läuft, solange die Seite vom Browser angezeigt wird

• Ein Timer kann vorzeitig durch Aufruf einer Funktion wieder beendet werden• Jeder Timer hat eine ID um ihn anzusprechen

Page 95: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

Javascript - Timer - Funktion setInterval

Jetzt brauchen wir nur noch die Funktion moveimage schreiben ...

<body onload="startmove()">

Nach dem Laden der Seite wird die Funktion startmove aufgerufen – diese startet den Timer

function startmove () { setInterval ("moveimage()", 300); }

Die Funktion startmove startet lediglich den Timer

Alle 300 Millisekunden

Wird die Funktion moveimage aufgerufen

Page 96: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

Javascript - Timer - Funktion moveimage

// Anlegen einer global gültigen Variablen count und vorbesetzen derselben mit dem Wert 0var count = 0;

// Die Funktion moveimage positioniert das Bild in Abhängigkeit des Zählers count// und erhöht den Zähler bei jedem Aufruf um einsfunction moveimage () { // Positioniere das Bild in Abhängigkeit des Zählers count bild.style.position = "absolute"; bild.style.left = count * 50; bild.style.top = 100; bild.style.height = 150; bild.style.width = 100;

// Erhöhe den Zähler count um eins count++; }

Die Funktion moveimage bewegt das Bild

X-Position setzen auf: 0, 50, 100, 150, etc

Ist gleichbedeutend mit: count = count + 1

Page 97: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

Javascript - Timer - Funktion moveimage

function moveimage () { …

// Erhöhe den Zähler count um eins count++;

// Wenn der Zähler den Wert 10 erreicht, setze ihn zurück auf 0 if (count >= 10) count = 0; }

Jetzt verhindern wir noch, dass das Bild rechts herausläuft

Ob das wohl auch mit zwei Timern funktionier?

Page 98: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

MinesweeperWir programmieren ein Spiel

Page 99: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

Javascript - Minesweeper

• Darstellung in HTML

• Interne Logik

Was müssen wir programmieren?

Page 100: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

Javascript - Minesweeper - Spielfeld-Darstellung in HTML

Die Darstellung in HTML besteht aus einzelnen Zellen

• Dimension (hier: 10x10)• Zellgröße• Farben (Hintergrund, Ränder)

Ein <div> ... </div> für das gesamte Spielfeld

Je ein <div> ... </div> für jede einzelne Zelle

Parameter

Page 101: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

Javascript - Minesweeper - Zellendefinition

<body style="background-color:lightblue; font-family:arial">

<div id="spielfeld" style="position:absolute; left:20; top:40;">

<div id="0,0" class="cell" style="left: 0; top: 0" onclick="leftClick (this)"></div> <div id="0,1" class="cell" style="left:30; top: 0" onclick="leftClick (this)"></div> <div id="0,2" class="cell" style="left:60; top: 0" onclick="leftClick (this)"></div> <div id="0,3" class="cell" style="left:90; top: 0" onclick="leftClick (this)"></div> <div id="1,0" class="cell" style="left: 0; top:30" onclick="leftClick (this)"></div> <div id="1,1" class="cell" style="left:30; top:30" onclick="leftClick (this)"></div> <div id="1,2" class="cell" style="left:60; top:30" onclick="leftClick (this)"></div> <div id="1,3" class="cell" style="left:90; top:30" onclick="leftClick (this)"></div> <div id="2,0" class="cell" style="left: 0; top:60" onclick="leftClick (this)"></div> <div id="2,1" class="cell" style="left:30; top:60" onclick="leftClick (this)"></div> <div id="2,2" class="cell" style="left:60; top:60" onclick="leftClick (this)"></div> <div id="2,3" class="cell" style="left:90; top:60" onclick="leftClick (this)"></div> <div id="3,0" class="cell" style="left: 0; top:90" onclick="leftClick (this)"></div> <div id="3,1" class="cell" style="left:30; top:90" onclick="leftClick (this)"></div> <div id="3,2" class="cell" style="left:60; top:90" onclick="leftClick (this)"></div> <div id="3,3" class="cell" style="left:90; top:90" onclick="leftClick (this)"></div>

</div>

</body>

Hier werden die Zellen für ein 4x4 Feld definiert

Page 102: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

Javascript - Minesweeper - Dynamische Zellen

Die Methode ist ungeeignet für größere Spielfelder

Lösung:

• <div> erzeugen

• Eigenschaften festlegen (Farbe, Rand, Größe)

• Position berechnen

Die <div> Elemente für jede einzelne Zellewerden dynamisch in JavaScript erzeugt

In einer Schleife

• An die HTML-Seite anhängen

Page 103: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

Javascript - Minesweeper - Schleifen

for (line=0; line<4; line++) { Alles was hier steht wird 4 mal ausgeführt. Beim ersten Mal hat line den Wert 0 Beim zweiten Mal hat line den Wert 1 Beim letzten Mal hat line den Wert 3 }

Wir benötigen dazu sogenannte Schleifen

for (line=0; line<10; line++) { alert ("Zeile: " + line); }

Beispiel

line ist die sogenannte Schleifenvariable

Page 104: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

Javascript - Minesweeper - Geschachtelte Schleifen

for (line=0; line<4; line++) { for (col=0; col<4; col++) { Alles was hier steht wird 16 mal ausgeführt. Beim 1. Mal ist: line=0 und col=0 Beim 2. Mal ist: line=0 und col=1 Beim 3. Mal ist: line=0 und col=2 Beim 4. Mal ist: line=0 und col=3

Beim 5. Mal ist: line=1 und col=0 Beim 6. Mal ist: line=1 und col=1 Beim 7. Mal ist: line=1 und col=2 Beim 8. Mal ist: line=1 und col=3

Beim letzten Mal ist: line=3 und col=3 } }

Schleifen kann man auch schachteln

for (line=0; line<4; line++) for (col=0; col<4; col++) alert ("Zeile: " + line + " " + "Spalte: " + col);

Beispiel

Page 105: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

Javascript - Minesweeper - Funktion createCells

Page 106: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

Javascript - Minesweeper - Funktion createCells

function createCells()

{ // Eine doppelt geschachtelte Schleife über alle Zeilen und Spalten for (line=0; line<dim; ++line) for (col=0; col<dim; ++col) { // Erzeuge die Zelle als HTML Objekt vom Typ <div> cell = document.createElement ("div");

// Setze die ID der Zelle in de Form: "zeile,spalte" cell.id = line + "," + col;

// Setze alle Style-Eigenschaften cell.style.borderWidth = "1"; // Randstärke cell.style.borderColor = "black"; // Randfarbe cell.style.borderStyle = "solid"; // Randtyp cell.style.backgroundColor = "lightyellow"; // Hintergrundfarbe cell.style.left = col * cellSize; // x-Position cell.style.top = line * cellSize; // y-Position cell.style.height = cellSize; // Zell-Höhe cell.style.width = cellSize; // Zell-Breite cell.style.position = "absolute"; // Positionierungsart

// Füge Zelle zum <div> mit der ID spielfeld hinzu spielfeld.appendChild (cell); } }

Page 107: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

Javascript - Minesweeper - Browsererkennung

Manchmal muss man browserabhängig programmieren

function isExplorer() {

return navigator.userAgent.search ("MSIE") != -1; }

Die Funktion isExplorer () liefert true, wenn der Browser ein Internet Explorer ist

if (isExplorer()) { cell.style.height = cellSize + 1; cell.style.width = cellSize + 1; }

Wir erweitern unsere Funktion createCells für den Internet Explorer

Page 108: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

Javascript - Minesweeper - Klicken in eine Zelle

function createCells()

{ … // Setze eine Funktion die beim Klicken auf die Zelle aufgerufen wird cell.onclick = cellClicked; … }

Wir rufen beim Klicken in eine Zelle eine Funktion auf

function cellClicked()

{ … hier kommt unsere eigene Funktion hin … }

Page 109: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

Javascript - Minesweeper - Funktion cellClicked

function cellClicked()

{ alert ("Zelle " + this.id + " wurde angeklickt"); }

Wir implementieren eine einfache Funktion cellClicked

this ist das angeklickte HTML-Objekt

Page 110: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

Javascript - Minesweeper - Funktion cellClicked

function cellClicked()

{ this.style.backgroundColor = "red"; }

Oder wir färben beim Klicken die Zelle rot

Page 111: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

Javascript - Minesweeper

Die Darstellung in HTML ist fertig

Jetzt programmieren wird die Logik

Page 112: Computer AG Schiller-Gymnasium Witten Thomas Schmidt Oktober 2008 2008/2009.

Ende