SlideShare a Scribd company logo
1 of 28
HTML5 / CSS3
eine Einführung


  EB RAUTS | Marcus Hofbauer, Teamleader pixelpoint multimedia
Moderne Semantik
HTML5 wird der neue Markup-Standard

Was steckt dahinter?
Weshalb wurde HTML5 entwickelt?
• das Web hat sich seit der Entwicklung von HTML4/XHTML1 grundlegend
  verändert
• statische Dokumente werden zu komplexen Applikationen
• semantisches Fundament fehlt
• HTML5 soll das ändern

•   Entwicklung begann bei WHATWG
•   2006 reaktiviert W3C die alte HTML-Arbeitsgruppe
•   beide Organisationen arbeiten an gemeinsamer Spezifikation
•   Editor Ian Hickson (google) sammelt und fürht Vorschläge zusammen
Prinzipen und Ziele der HTML5-Entwicklung
1. Unterstütze existierende Inhalte

2. Graceful degradation (etwa: „Schrittweises Zurückfallen“)

3. Das Rad nicht neu erfinden

4. Paving the Cowpaths (etwa: „Trampelpfade pflastern“)

5. Evolution statt Revolution
Muss ich jetzt HTML statt XHTML schreiben?
Nein! Es sind beide Serialisationen (Schreibweisen) möglich
Wichtig! Beide haben selben DOM
HTML5 erlaubt XML Syntax für Elemente ohne End-Tag: <img … />




Bsp: Unterschiedlicher DOM bei HTML4 und XHTML

HTML4 - bei einer Tabelle wird explizit <tbody> in das DOM eingefügt
in XHTML nicht

<table><tr><td>Text</td></tr></table>
in HTML4 zeigt das CSS table > tr > td bei keine Wirkung
Das Endoskelett einer Webseite
Wireframe                                                        Grundskelett einer Website mit div-Suppe


                                                                  <body>
                                                                    <div id="header">
                                                                      <div id="logo">Logo</div>
                                                                      <div id="search">Suche</div>
                                                                      <div id="nav">Hauptmenü</div>
                                                                    </div>

                                                                    <div id="content">
                                                                      <h1>Hauptbereich</h1>

                                                                      <div class="section">
                                                                        <h2>Sektion</h2>
                                                                        <h3>Abschnitt</h3>

                                                                        <!-- Content -->
                                                                      </div>

                                                                      <div class="section">
                                                                        <h2>Sektion</h2>

                                                                        <!-- Content -->
                                                                      </div>
                                                                    </div>

Abb. Ein Wireframe veranschaulicht Größe, Position und Wirkung      <div id="sidebar">
der Hauptelemente einer Website                                       <div id="subnav">Bereichsmenü</div>
                                                                    </div>

                                                                    <div id="footer">Footer</div>
                                                                  </body>
Neue Elementtypen und neue Konzepte
Neue Sektionselemente: header, nav, article, section, aside, footer


 <body>                                    <body>
   <div id="header">                         <header>
     <div id="logo">Logo</div>                 <div id="logo">Logo</div>
     <div id="search">Suche</div>              <div id="search">Suche</div>
     <div id="nav">Hauptmenü</div>             <nav>Hauptmenü</nav>
   </div>                                    </header>

   <div id="content">                       <article>
     <h1>Hauptbereich</h1>                    <h1>Hauptbereich</h1>

     <div class="section">                    <section>
       <h2>Sektion</h2>                         <h2>Sektion</h2>
       <h3>Abschnitt</h3>                       <h3>Abschnitt</h3>

       <!-- Content -->                         <!-- Content -->
     </div>                                   </section>

     <div class="section">                    <section>
       <h2>Sektion</h2>                         <h2>Sektion</h2>

       <!-- Content -->                         <!-- Content -->
     </div>                                   </section>
   </div>                                   </article>

   <div id="sidebar">                       <aside>
     <div id="subnav">Bereichsmenü</div>      <nav>Bereichsmenü</nav>
   </div>                                   </aside>

   <div id="footer">Footer</div>             <footer>Footer</footer>
 </body>                                   </body>




Grundskelett einer Website mit div-Suppe    Grundskelett einer Website HTML5
Sektionen: Der Elementtyp section

    • Zeichnet eine Sektion aus
    • eine Sektion ist eine Gruppe von Elementen die thematisch
      zusammengehören -z.B. Inhalte und dazugehörige Überschriften
      zusammenfassen
    • ist semantisch nicht leer bzw. bedeutungslos
    • zur Zusammenfassung von Elementen fürs Styling div verwenden




Kopfbereich: Der Elementtyp header

    • definiert „Kopfbereich“ einer Webseite oder einer Sektion
Navigationsbereich: Der Elementtyp nav

    • Zeichnet einen Bereich mit Navigationslinks aus
    • Nur Haupt- und Bereichsmenüs auszeichnen




              <nav>
                <h2>Navigation</h2>

                <ul>
                 <li class="home"><strong title="Hier befinden Sie sich
                   gerade.">Startseite</strong></li>
                 <li><a href="/adventskalender/">Adventskalender</a></li>
                 <li><a href="/mission-statement/">Mission Statement</a></li>
                 <li><a href="/linkliste/">Linkliste</a></li>
                 <li><a href="/krautcosmos/">KrautCosmos </a></li>
                 <li><a href="/impressum/">Impressum</a></li>
                </ul>
              </nav>



            Navigationsbereich mit Hauptmenü
Eigenständige Bereiche: Der Elementtyp article

    • Zeichnet inhaltlich eigenständige Bereiche einer Webseite aus

               <article>
                 <header>
                   <h1>Frontendentwicklung ist nicht einfach!</h1>
                   <p class="postmetadata">31. Juli 2009 | Abgelegt in
                   <a href="/category/artikel/" rel="category tag">Artikel</a>
                   | Tags: <a href="/tag/css/">CSS</a>,
                   <a href="/tag/html/">HTML</a></p>
                 </header>

                <p>»Aber CSS ist doch einfach!« Man könnte stattdessen
                auch »Frontendentwicklung« oder »HTML« setzen. (...) Lasst
                es Euch nicht einreden: Frontendentwicklung ist nicht
                einfach, sondern eine ständige Herausforderung!</p>

                <section>
                  <h2>1 Kommentar</h2>

                   <p>Du kannst einen Kommentar hinterlassen oder einen
                   Trackback auf deiner Website einrichten.</p>

                   <article id="comment-42">
                     <header>
                       <h3><cite>Kommentar von Max Mustermann</cite></h3>
                       <p class="commentmetadata">02. August 2009</p>
                     </header>

                     <p>Toller Artikel! Danke!</p>
                   </article>
                 </section>
               </article>



              Auszeichnung eines Kommentars als verschachteltes article-Element
Marginalien und Randbereiche: Der Elementtyp aside

    • enthält erläuternde und weiterführende Informationen als Ergänzung zum
      Hauptinhalt




              <aside>
                <h1>Webkrauts Mission Statement</h1>

                <p>Die Webkrauts setzen sich dafür ein, die Vorteile der
                Webstandards auch im deutschsprachigen Raum stärker zur
                Geltung zu bringen.</p>

                <p>Sie leisten Aufklärungsarbeit durch Veröffentlichungen
                im Netz und in anderen Medien.</p>
              </aside>



              Informationen über die Webkrauts als erläuternder Kasten
Fußbereiche: Der Elementtyp footer

    • enthält sichtbare Metainformationen einer Webseite oder eines
      Sektionselementes



              <footer>
                <section>
                  <h1>Systemlinks</h1>

                  <ul>
                    <li><a href="/login/">Anmelden</a></li>
                    <li><a href="/login/?action=register">
                        Registrieren</a></li>
                  </ul>
                </section>

                <section>
                  <h1>Lizenzbestimmungen</h1>

                  <p>© Webkrauts 2005-2009. Alle Rechte vorbehalten.</p>
                </section>
              </footer>



             Systemlinks und Copyrighthinweise gehören in footer-Elemente
Und die Browser? Einsatz der neuen Elemente
• Aktuelle Versionen von Opera, Safari und Firefox stellen alle vorgestellten
  Elemente wie gewünscht dar
• CSS Anweisung notwendig:

                  article, aside, footer, header, hgroup, nav, section
                    { display: block; }




• Ältere Browser haben allerdings einige Probleme.
   • Firefox 2 (und jeder andere Browser mit einer Gecko-Version kleiner als 1.9b5)
     schließt unbekannte Elemente, sobald er auf ein Blockelement stößt wie p, h1,
     div und so weiter.
   • Im Internet Explorer gibt es ein ähnliches Problem, und das zieht sich durch
     sämtliche Versionen, die heute noch relevant sind – bis IE6

                <section class="sektion">
                  <h1>Foo</h1>                     <section class="sektion"></section>
                                                   <h1>Foo</h1>
                  <p>Bar</p>                       <p>Bar</p>
                </section>                         </section><//section>
                                                   <p>Baz</p>
                <p>Baz</p>




 • Die beste Lösung stellt dabei das HTML5 enabling script von Remy Sharp dar.

                               document.createElement('section');
Sehen und Hören
Element <video>
Native Einbindung von Filmen in Webseiten

Browser Unterstützung:
   • Firefox ab Version 3.5,
   • Safari ab 3.2,
   • Google Chrome Browser (Version 3.x).
   • Opera hat für Version 10.1 eine Unterstützung angekündigt.
   • Redmonder Browser (IE) bleiben augenblicklich komplett außen vor.

Codecs und Formate
  • Mozilla Foundation und Opera ausschließlich Ogg Media Container(.ogg, .ogv)
    und den Theora Video Codec
  • Apple's Safari H.264 Codec (.mp4, .mp4v)
  • Google Browser Chrome unterstützt beide
  • Redmond schweigt

Einbindung

 <video src="sample.ogg" controls>            <video src="sample.mp4" controls>
   Ihr Browser unterstützt das Element          Ihr Browser unterstützt das Element
   <code>video</code> nicht                     <code>video</code> nicht
   oder erkennt das Format der Datei nicht.     oder erkennt das Format der Datei nicht.
 </video>                                     </video>
Element <audio>
Native Einbindung von Filmen in Webseiten

Browser Unterstützung:
   • Firefox ab Version 3.5,
   • Safari ab 3.2,
   • Google Chrome Browser (Version 3.x).
   • Opera hat für Version 10.1 eine Unterstützung angekündigt.
   • Redmonder Browser (IE) bleiben augenblicklich komplett außen vor.

Codecs und Formate
  • Mozilla Foundation und Opera ausschließlich Ogg Media Container(.ogg) und
    Vorbis Audio Codec, Wave (.wav)
  • Apple's Safari MPEG-1, Audio Layer 3 Format (.mp3), Wave (.wav)
  • Google Browser Chrome unterstützt beide
  • Redmond schweigt

Einbindung
 <audio controls>
   <source src="sample-audio.ogg" type="audio/ogg" />
   <source src="sample-audio.mp3" type="audio/mpeg" />
   Ihr Browser unterstützt das Element
   <code>audio</code> nicht oder beide Formate
   (Ogg/Vorbis, MPEG3) der Audiodatei(en) sind unbekannt.
 </audio>
Malen nach Zahlen: <canvas>
•ermöglicht Zeichenoperationen, mit Hilfe derer wir (fast) beliebige geometrische
 Formen und Pfade zeichnen können.
•beispielsweise die Erstellung von Charts und/oder Diagrammen
•umfangreiche Möglichkeiten zur Komposition, Animation und Manipulation von
 Bilder und Grafiken und Filmen.
•ähnlich wie Actionscript

Browser Unterstützung:
   • Alle Browser mit mind. Gecko 1.8 Engine (Firefox ab 1.5),
   • Safari ab 3.x,
   • Opera ab 9.x
   • der aktuelle Google-Browser Chrome
   • Internet Explorer interpretiert das Element noch nicht. Javascript Lösung

Einbindung

 <canvas id="sample" width="290" height="150">
   Ihr Browser unterstützt das Element
     <code>canvas</code> nicht.
 </canvas>
Tipphilfen

More Related Content

Similar to HTML5 Übersicht

Fortbildung Schulwebsite: Technische Grundlagen
Fortbildung Schulwebsite: Technische GrundlagenFortbildung Schulwebsite: Technische Grundlagen
Fortbildung Schulwebsite: Technische GrundlagenAndreas Kalt
 
Input o2thinkbig
Input o2thinkbigInput o2thinkbig
Input o2thinkbigaseubert
 
HTML5 im Überblick - semantisches HTML, Geolocation, Offline-Webanwendungen, ...
HTML5 im Überblick - semantisches HTML, Geolocation, Offline-Webanwendungen, ...HTML5 im Überblick - semantisches HTML, Geolocation, Offline-Webanwendungen, ...
HTML5 im Überblick - semantisches HTML, Geolocation, Offline-Webanwendungen, ...Karionis
 
Türme bauen mit Schildbürgern
Türme bauen mit SchildbürgernTürme bauen mit Schildbürgern
Türme bauen mit SchildbürgernNicolai Schwarz
 
Eigene Themes from Scratch
Eigene Themes from ScratchEigene Themes from Scratch
Eigene Themes from ScratchStefan Fröhlich
 
Performance Optimierung mit Mod_Pagespeed - WP Camp 2013
Performance Optimierung mit Mod_Pagespeed - WP Camp 2013Performance Optimierung mit Mod_Pagespeed - WP Camp 2013
Performance Optimierung mit Mod_Pagespeed - WP Camp 2013Bernhard Kau
 
Digitalisierung als Dienstleistung
Digitalisierung als DienstleistungDigitalisierung als Dienstleistung
Digitalisierung als DienstleistungStefan Krause
 
Xhtml und Websitegestaltung
Xhtml und WebsitegestaltungXhtml und Websitegestaltung
Xhtml und Websitegestaltungcontrastmedia
 
Dojo Und Notes
Dojo Und NotesDojo Und Notes
Dojo Und Notesdominion
 
Dokumentation schreiben kann spass machen
Dokumentation schreiben kann spass machenDokumentation schreiben kann spass machen
Dokumentation schreiben kann spass machenSebastian Hempel
 
Türme bauen mit Schildbürgern (Webtech Edition)
Türme bauen mit Schildbürgern (Webtech Edition)Türme bauen mit Schildbürgern (Webtech Edition)
Türme bauen mit Schildbürgern (Webtech Edition)Nicolai Schwarz
 
Developing UXD - Workshop bei XING
Developing UXD - Workshop bei XINGDeveloping UXD - Workshop bei XING
Developing UXD - Workshop bei XINGDeveloping UXD
 
DigiMediaL_musik Wordpress als Musiker-Webseite
DigiMediaL_musik Wordpress als Musiker-WebseiteDigiMediaL_musik Wordpress als Musiker-Webseite
DigiMediaL_musik Wordpress als Musiker-WebseiteDigiMediaL_musik
 
JSF 2 Kompositkomponenten (JAX 2012)
JSF 2 Kompositkomponenten (JAX 2012)JSF 2 Kompositkomponenten (JAX 2012)
JSF 2 Kompositkomponenten (JAX 2012)Michael Kurz
 

Similar to HTML5 Übersicht (20)

Fortbildung Schulwebsite: Technische Grundlagen
Fortbildung Schulwebsite: Technische GrundlagenFortbildung Schulwebsite: Technische Grundlagen
Fortbildung Schulwebsite: Technische Grundlagen
 
Semantic html5
Semantic html5Semantic html5
Semantic html5
 
HTML5
HTML5HTML5
HTML5
 
Input o2thinkbig
Input o2thinkbigInput o2thinkbig
Input o2thinkbig
 
Semantic html5
Semantic html5Semantic html5
Semantic html5
 
HTML5 in TYPO3 4.7
HTML5 in TYPO3 4.7HTML5 in TYPO3 4.7
HTML5 in TYPO3 4.7
 
HTML5 im Überblick - semantisches HTML, Geolocation, Offline-Webanwendungen, ...
HTML5 im Überblick - semantisches HTML, Geolocation, Offline-Webanwendungen, ...HTML5 im Überblick - semantisches HTML, Geolocation, Offline-Webanwendungen, ...
HTML5 im Überblick - semantisches HTML, Geolocation, Offline-Webanwendungen, ...
 
XHTML
XHTMLXHTML
XHTML
 
Türme bauen mit Schildbürgern
Türme bauen mit SchildbürgernTürme bauen mit Schildbürgern
Türme bauen mit Schildbürgern
 
Eigene Themes from Scratch
Eigene Themes from ScratchEigene Themes from Scratch
Eigene Themes from Scratch
 
Performance Optimierung mit Mod_Pagespeed - WP Camp 2013
Performance Optimierung mit Mod_Pagespeed - WP Camp 2013Performance Optimierung mit Mod_Pagespeed - WP Camp 2013
Performance Optimierung mit Mod_Pagespeed - WP Camp 2013
 
Digitalisierung als Dienstleistung
Digitalisierung als DienstleistungDigitalisierung als Dienstleistung
Digitalisierung als Dienstleistung
 
Blank Template für Joomla!
Blank Template für Joomla!Blank Template für Joomla!
Blank Template für Joomla!
 
Xhtml und Websitegestaltung
Xhtml und WebsitegestaltungXhtml und Websitegestaltung
Xhtml und Websitegestaltung
 
Dojo Und Notes
Dojo Und NotesDojo Und Notes
Dojo Und Notes
 
Dokumentation schreiben kann spass machen
Dokumentation schreiben kann spass machenDokumentation schreiben kann spass machen
Dokumentation schreiben kann spass machen
 
Türme bauen mit Schildbürgern (Webtech Edition)
Türme bauen mit Schildbürgern (Webtech Edition)Türme bauen mit Schildbürgern (Webtech Edition)
Türme bauen mit Schildbürgern (Webtech Edition)
 
Developing UXD - Workshop bei XING
Developing UXD - Workshop bei XINGDeveloping UXD - Workshop bei XING
Developing UXD - Workshop bei XING
 
DigiMediaL_musik Wordpress als Musiker-Webseite
DigiMediaL_musik Wordpress als Musiker-WebseiteDigiMediaL_musik Wordpress als Musiker-Webseite
DigiMediaL_musik Wordpress als Musiker-Webseite
 
JSF 2 Kompositkomponenten (JAX 2012)
JSF 2 Kompositkomponenten (JAX 2012)JSF 2 Kompositkomponenten (JAX 2012)
JSF 2 Kompositkomponenten (JAX 2012)
 

HTML5 Übersicht

  • 1. HTML5 / CSS3 eine Einführung EB RAUTS | Marcus Hofbauer, Teamleader pixelpoint multimedia
  • 3. HTML5 wird der neue Markup-Standard Was steckt dahinter?
  • 4. Weshalb wurde HTML5 entwickelt?
  • 5. • das Web hat sich seit der Entwicklung von HTML4/XHTML1 grundlegend verändert • statische Dokumente werden zu komplexen Applikationen • semantisches Fundament fehlt • HTML5 soll das ändern • Entwicklung begann bei WHATWG • 2006 reaktiviert W3C die alte HTML-Arbeitsgruppe • beide Organisationen arbeiten an gemeinsamer Spezifikation • Editor Ian Hickson (google) sammelt und fürht Vorschläge zusammen
  • 6. Prinzipen und Ziele der HTML5-Entwicklung
  • 7. 1. Unterstütze existierende Inhalte 2. Graceful degradation (etwa: „Schrittweises Zurückfallen“) 3. Das Rad nicht neu erfinden 4. Paving the Cowpaths (etwa: „Trampelpfade pflastern“) 5. Evolution statt Revolution
  • 8. Muss ich jetzt HTML statt XHTML schreiben?
  • 9. Nein! Es sind beide Serialisationen (Schreibweisen) möglich Wichtig! Beide haben selben DOM HTML5 erlaubt XML Syntax für Elemente ohne End-Tag: <img … /> Bsp: Unterschiedlicher DOM bei HTML4 und XHTML HTML4 - bei einer Tabelle wird explizit <tbody> in das DOM eingefügt in XHTML nicht <table><tr><td>Text</td></tr></table> in HTML4 zeigt das CSS table > tr > td bei keine Wirkung
  • 11. Wireframe Grundskelett einer Website mit div-Suppe <body> <div id="header"> <div id="logo">Logo</div> <div id="search">Suche</div> <div id="nav">Hauptmenü</div> </div> <div id="content"> <h1>Hauptbereich</h1> <div class="section"> <h2>Sektion</h2> <h3>Abschnitt</h3> <!-- Content --> </div> <div class="section"> <h2>Sektion</h2> <!-- Content --> </div> </div> Abb. Ein Wireframe veranschaulicht Größe, Position und Wirkung <div id="sidebar"> der Hauptelemente einer Website <div id="subnav">Bereichsmenü</div> </div> <div id="footer">Footer</div> </body>
  • 12. Neue Elementtypen und neue Konzepte
  • 13. Neue Sektionselemente: header, nav, article, section, aside, footer <body> <body> <div id="header"> <header> <div id="logo">Logo</div> <div id="logo">Logo</div> <div id="search">Suche</div> <div id="search">Suche</div> <div id="nav">Hauptmenü</div> <nav>Hauptmenü</nav> </div> </header> <div id="content"> <article> <h1>Hauptbereich</h1> <h1>Hauptbereich</h1> <div class="section"> <section> <h2>Sektion</h2> <h2>Sektion</h2> <h3>Abschnitt</h3> <h3>Abschnitt</h3> <!-- Content --> <!-- Content --> </div> </section> <div class="section"> <section> <h2>Sektion</h2> <h2>Sektion</h2> <!-- Content --> <!-- Content --> </div> </section> </div> </article> <div id="sidebar"> <aside> <div id="subnav">Bereichsmenü</div> <nav>Bereichsmenü</nav> </div> </aside> <div id="footer">Footer</div> <footer>Footer</footer> </body> </body> Grundskelett einer Website mit div-Suppe Grundskelett einer Website HTML5
  • 14. Sektionen: Der Elementtyp section • Zeichnet eine Sektion aus • eine Sektion ist eine Gruppe von Elementen die thematisch zusammengehören -z.B. Inhalte und dazugehörige Überschriften zusammenfassen • ist semantisch nicht leer bzw. bedeutungslos • zur Zusammenfassung von Elementen fürs Styling div verwenden Kopfbereich: Der Elementtyp header • definiert „Kopfbereich“ einer Webseite oder einer Sektion
  • 15. Navigationsbereich: Der Elementtyp nav • Zeichnet einen Bereich mit Navigationslinks aus • Nur Haupt- und Bereichsmenüs auszeichnen <nav> <h2>Navigation</h2> <ul> <li class="home"><strong title="Hier befinden Sie sich gerade.">Startseite</strong></li> <li><a href="/adventskalender/">Adventskalender</a></li> <li><a href="/mission-statement/">Mission Statement</a></li> <li><a href="/linkliste/">Linkliste</a></li> <li><a href="/krautcosmos/">KrautCosmos </a></li> <li><a href="/impressum/">Impressum</a></li> </ul> </nav> Navigationsbereich mit Hauptmenü
  • 16. Eigenständige Bereiche: Der Elementtyp article • Zeichnet inhaltlich eigenständige Bereiche einer Webseite aus <article> <header> <h1>Frontendentwicklung ist nicht einfach!</h1> <p class="postmetadata">31. Juli 2009 | Abgelegt in <a href="/category/artikel/" rel="category tag">Artikel</a> | Tags: <a href="/tag/css/">CSS</a>, <a href="/tag/html/">HTML</a></p> </header> <p>»Aber CSS ist doch einfach!« Man könnte stattdessen auch »Frontendentwicklung« oder »HTML« setzen. (...) Lasst es Euch nicht einreden: Frontendentwicklung ist nicht einfach, sondern eine ständige Herausforderung!</p> <section> <h2>1 Kommentar</h2> <p>Du kannst einen Kommentar hinterlassen oder einen Trackback auf deiner Website einrichten.</p> <article id="comment-42"> <header> <h3><cite>Kommentar von Max Mustermann</cite></h3> <p class="commentmetadata">02. August 2009</p> </header> <p>Toller Artikel! Danke!</p> </article> </section> </article> Auszeichnung eines Kommentars als verschachteltes article-Element
  • 17. Marginalien und Randbereiche: Der Elementtyp aside • enthält erläuternde und weiterführende Informationen als Ergänzung zum Hauptinhalt <aside> <h1>Webkrauts Mission Statement</h1> <p>Die Webkrauts setzen sich dafür ein, die Vorteile der Webstandards auch im deutschsprachigen Raum stärker zur Geltung zu bringen.</p> <p>Sie leisten Aufklärungsarbeit durch Veröffentlichungen im Netz und in anderen Medien.</p> </aside> Informationen über die Webkrauts als erläuternder Kasten
  • 18. Fußbereiche: Der Elementtyp footer • enthält sichtbare Metainformationen einer Webseite oder eines Sektionselementes <footer> <section> <h1>Systemlinks</h1> <ul> <li><a href="/login/">Anmelden</a></li> <li><a href="/login/?action=register"> Registrieren</a></li> </ul> </section> <section> <h1>Lizenzbestimmungen</h1> <p>© Webkrauts 2005-2009. Alle Rechte vorbehalten.</p> </section> </footer> Systemlinks und Copyrighthinweise gehören in footer-Elemente
  • 19. Und die Browser? Einsatz der neuen Elemente
  • 20. • Aktuelle Versionen von Opera, Safari und Firefox stellen alle vorgestellten Elemente wie gewünscht dar • CSS Anweisung notwendig: article, aside, footer, header, hgroup, nav, section { display: block; } • Ältere Browser haben allerdings einige Probleme. • Firefox 2 (und jeder andere Browser mit einer Gecko-Version kleiner als 1.9b5) schließt unbekannte Elemente, sobald er auf ein Blockelement stößt wie p, h1, div und so weiter. • Im Internet Explorer gibt es ein ähnliches Problem, und das zieht sich durch sämtliche Versionen, die heute noch relevant sind – bis IE6 <section class="sektion"> <h1>Foo</h1> <section class="sektion"></section> <h1>Foo</h1> <p>Bar</p> <p>Bar</p> </section> </section><//section> <p>Baz</p> <p>Baz</p> • Die beste Lösung stellt dabei das HTML5 enabling script von Remy Sharp dar. document.createElement('section');
  • 23. Native Einbindung von Filmen in Webseiten Browser Unterstützung: • Firefox ab Version 3.5, • Safari ab 3.2, • Google Chrome Browser (Version 3.x). • Opera hat für Version 10.1 eine Unterstützung angekündigt. • Redmonder Browser (IE) bleiben augenblicklich komplett außen vor. Codecs und Formate • Mozilla Foundation und Opera ausschließlich Ogg Media Container(.ogg, .ogv) und den Theora Video Codec • Apple's Safari H.264 Codec (.mp4, .mp4v) • Google Browser Chrome unterstützt beide • Redmond schweigt Einbindung <video src="sample.ogg" controls> <video src="sample.mp4" controls> Ihr Browser unterstützt das Element Ihr Browser unterstützt das Element <code>video</code> nicht <code>video</code> nicht oder erkennt das Format der Datei nicht. oder erkennt das Format der Datei nicht. </video> </video>
  • 25. Native Einbindung von Filmen in Webseiten Browser Unterstützung: • Firefox ab Version 3.5, • Safari ab 3.2, • Google Chrome Browser (Version 3.x). • Opera hat für Version 10.1 eine Unterstützung angekündigt. • Redmonder Browser (IE) bleiben augenblicklich komplett außen vor. Codecs und Formate • Mozilla Foundation und Opera ausschließlich Ogg Media Container(.ogg) und Vorbis Audio Codec, Wave (.wav) • Apple's Safari MPEG-1, Audio Layer 3 Format (.mp3), Wave (.wav) • Google Browser Chrome unterstützt beide • Redmond schweigt Einbindung <audio controls> <source src="sample-audio.ogg" type="audio/ogg" /> <source src="sample-audio.mp3" type="audio/mpeg" /> Ihr Browser unterstützt das Element <code>audio</code> nicht oder beide Formate (Ogg/Vorbis, MPEG3) der Audiodatei(en) sind unbekannt. </audio>
  • 26. Malen nach Zahlen: <canvas>
  • 27. •ermöglicht Zeichenoperationen, mit Hilfe derer wir (fast) beliebige geometrische Formen und Pfade zeichnen können. •beispielsweise die Erstellung von Charts und/oder Diagrammen •umfangreiche Möglichkeiten zur Komposition, Animation und Manipulation von Bilder und Grafiken und Filmen. •ähnlich wie Actionscript Browser Unterstützung: • Alle Browser mit mind. Gecko 1.8 Engine (Firefox ab 1.5), • Safari ab 3.x, • Opera ab 9.x • der aktuelle Google-Browser Chrome • Internet Explorer interpretiert das Element noch nicht. Javascript Lösung Einbindung <canvas id="sample" width="290" height="150"> Ihr Browser unterstützt das Element <code>canvas</code> nicht. </canvas>

Editor's Notes

  1. das Web hat sich seit 1999, als HTML4/XHTML1 entwickelt wurde, grundlegend ver&amp;#xE4;ndert. Aus einem Web von statischen Dokumenten wurden hochkomplexe Applikationen, f&amp;#xFC;r die aber kaum semantisches Fundament vorhanden ist. Das soll sich in HTML5 &amp;#xE4;ndern. Die Entwicklung begann bei der WHATWG, einer Gruppe von Browserherstellern, die mit dem W3C-Prozess nicht einverstanden waren. Dort wurde der (zu vorigen (X)HTML-Versionen inkompatible) XHTML2-Standard entwickelt, der aber auf keinerlei Akzeptanz bei den Browserherstellern stie&amp;#xDF;. 2006 sah das W3C ein, dass HTML5 eine gute Sache ist und reaktivierte die alte HTML-Arbeitsgruppe. Beide Organisationen existieren heute nebeneinander und arbeiten an einer gemeinsamen Spezifikation, Editor Ian Hickson (Google) sammelt die Vorschl&amp;#xE4;ge und f&amp;#xFC;hrt sie zusammen.
  2. Unterst&amp;#xFC;tze existierende Inhalte: Parser (nicht Autoren!) sollen mit alten, aber dennoch existierenden Techniken umgehen k&amp;#xF6;nnen, auch wenn sie nicht in HTML5 festgelegt sind. So werden bspw. fehlerhaft verschachtelte Elemente (&lt;b&gt;a&lt;i&gt;b&lt;/b&gt;c&lt;/i&gt;) genauso unterst&amp;#xFC;tzt wie Elemente, die nicht mehr zum Standard geh&amp;#xF6;ren (&lt;u&gt; etwa). Graceful degradation (etwa: &amp;#x201E;Schrittweises Zur&amp;#xFC;ckfallen&amp;#x201C;): Wird eine Komponente in HTML5 nicht von einem Browser unterst&amp;#xFC;tzt, so darf das nicht dazu f&amp;#xFC;hren, dass die gesamte Webseite unzug&amp;#xE4;nglich wird. Beispiel: Das (vorgeschlagene) irrelevant-Attribut kann per CSS emuliert werden: [irrelevant] {display:none;} Das Rad nicht neu erfinden: Wenn es schon eine weit verbreitete und implementierte Technik gibt, dann sollte sie &amp;#xFC;bernommen werden statt etwas komplett neues zu entwickeln. Beispiel: contenteditable=&quot;&quot; (um Bereiche der Seite bearbeitbar zu machen) ist bereits in vielen Browsern vorhanden und wird daher &amp;#xFC;bernommen. Paving the Cowpaths (etwa: &amp;#x201E;Trampelpfade pflastern&amp;#x201C;): Wenn es schon weit verbreitete Techniken gibt, dann sollte in Erw&amp;#xE4;gung gezogen werden diese zu nutzen. Beispiel: &lt;br /&gt; kommt oft in HTML statt &lt;br&gt; vor und es schadet niemandem, wenn man die Nutzung erlaubt. Evolution statt Revolution: HTML5 entwickelt (X)HTML weiter und wirft altbekannte Grunds&amp;#xE4;tze nicht weg. Das bedeutet, dass Webentwickler nichts komplett neues erlernen m&amp;#xFC;ssen, sondern nach und nach neue Features einbauen k&amp;#xF6;nnen. Das gilt nat&amp;#xFC;rlich auch f&amp;#xFC;r die Hersteller von Browsern.
  3. Nein. HTML5 verf&amp;#xFC;gt &amp;#xFC;ber beide Serialisationen (Schreibweisen), kann also sowohl als X(HT)ML als auch als HTML geschrieben und interpretiert werden. Wichtig ist: Beide verf&amp;#xFC;gen nach dem Parsen &amp;#xFC;ber den selben DOM-Baum. Es wird also tendenziell einfacher JavaScripts f&amp;#xFC;r HTML und XHTML zu schreiben. Der DOM-Baum von HTML4 und XHTML1-Dokumenten konnte zuvor trotz gleicher Schreibweise unterschiedlich sein. Bei einem HTML4-Dokument wird zum Beispiel bei folgender Tabelle ein &lt;tbody&gt; explizit in das DOM eingef&amp;#xFC;gt, bei XHTML nicht: &lt;table&gt;&lt;tr&gt;&lt;td&gt;Text&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt; Das bedeutet, dass CSS wie table &gt; tr &gt; td in HTML4 keine Wirkung zeigt. Zum anderen erlaubt HTML5 ausdr&amp;#xFC;cklich die Nutzung der XML-Syntax f&amp;#xFC;r Elemente ohne End-Tag: &lt;img &amp;#x2026; /&gt; f&amp;#xFC;hrt nicht mehr zu Validierungsfehlern, auch wenn man ein HTML-Dokument benutzt.
  4. Viele Webdesigner beginnen ihre Entw&amp;#xFC;rfe mit der Entwicklung eines Wireframes (Drahtgitter, Gittermodell). Damit wird ein sehr fr&amp;#xFC;her konzeptueller Prototyp einer Website bezeichnet, der die wichtigsten Bereiche wie Header, Navigation, Spaltenraster und Footer schematisch darstellt, h&amp;#xE4;ufig in Form verschiedenfarbiger oder in verschiedenen Graut&amp;#xF6;nen abgestufter K&amp;#xE4;sten. Dabei reicht es aus, den grundlegenden konzeptuellen Entwurf nur sehr rudiment&amp;#xE4;r abzubilden, um die Platzierung der einzelnen Bereiche zu verdeutlichen, und anschlie&amp;#xDF;end Schritt f&amp;#xFC;r Schritt zu verfeinern. Abbildung 1 zeigt, wie ein Wireframe in einem fortgeschrittenen Stadium aussehen k&amp;#xF6;nnte.Abb. 1: Ein Wireframe veranschaulicht Gr&amp;#xF6;&amp;#xDF;e, Position und Wirkung der Hauptelemente einer Website Webautoren gehen so &amp;#xE4;hnlich vor, wenn sie beginnen, das Markup f&amp;#xFC;r eine Webseite aufzubauen. Auch sie arbeiten sich von au&amp;#xDF;en nach innen vor. Am Anfang steht die Auszeichnung der groben Struktur, deren Inhalte im Anschluss Schritt f&amp;#xFC;r Schritt ausgezeichnet werden. In Ermangelung geeigneter Elemente f&amp;#xFC;r Seitenbereiche wie Header, Logo, Suche, Hauptmen&amp;#xFC;, Seitenspalte oder Footer greifen Webautoren auf div-Elemente zur&amp;#xFC;ck und vergeben geeignete Bezeichner und Klassen. Ein solches &amp;#xBB;Grundskelett&amp;#xAB; einer Website zeigt Listing 1.
  5. Sektionen: Der Elementtyp section Das Element section zeichnet eine Sektion in einem Dokument oder einer Web-Applikation aus. Eine Sektion ist eine Gruppe von Elementen, die thematisch zusammengeh&amp;#xF6;ren. Beispiele daf&amp;#xFC;r sind Abschnitte eines Textes, einzelne Register (Tabs) in einer registerbasierten Benutzeroberfl&amp;#xE4;che oder einzelne Bereiche einer Website wie die Einleitung, der Newsbereich oder Kontaktinformationen. Sektionen enthalten h&amp;#xE4;ufig eine &amp;#xDC;berschrift und gelegentlich einen Footer, der (sichtbare) Metainformationen zur Sektion enth&amp;#xE4;lt. Sektionen eignen sich dazu, Inhalte und deren &amp;#xDC;berschriften in einem gemeinsamen Element zusammenzufassen. Das geht in HTML5 &amp;#xFC;ber die reine Auzeichnungsebene hinaus; dazu sp&amp;#xE4;ter mehr. section ist kein semantisch leeres, bedeutungsloses Element; ebenso wenig wie die anderen in diesem Artikel vorgestellten Elemente. Wer einen Container ben&amp;#xF6;tigt, um Elemente f&amp;#xFC;rs Styling zusammenzufassen, der sollte weiterhin div verwenden. Kopfbereiche: Der Elementtyp header Das Element header definiert den &amp;#xBB;Kopfbereich&amp;#xAB; einer Webseite oder eines Sektionselements. Als Auszeichnung des Kopfbereichs einer Webseite enth&amp;#xE4;lt es Elemente wie die Haupt&amp;#xFC;berschrift, das Logo, das Suchfeld oder die Hauptnavigation. Innerhalb eines Sektionselements enth&amp;#xE4;lt es &amp;#xDC;berschriften oder Elemente wie das Inhaltsverzeichnis oder die Einleitung der Sektion.
  6. Das Element nav zeichnet einen Bereich mit Navigationslinks aus, entweder mit Links zu anderen Seiten oder zu Sprungankern innerhalb derselben Seite. Webautoren sollten nicht jede Gruppe von Links mit nav auszeichnen, sondern nur zentrale Navigationsbereiche wie das Haupt- und das Bereichsmen&amp;#xFC;. Typischerweise enth&amp;#xE4;lt das nav-Element Listen, welche die Navigation repr&amp;#xE4;sentieren.
  7. Das Element article zeichnet einen inhaltlich eigenst&amp;#xE4;ndigen Bereich auf einer Webseite aus, der zwar im Kontext der Seite steht, aber f&amp;#xFC;r sich unabh&amp;#xE4;ngig ist. Ein Inhalt ist dann eigenst&amp;#xE4;ndig, wenn er auch au&amp;#xDF;erhalb der Seite f&amp;#xFC;r sich allein Sinn ergibt, beispielsweise wenn er in einem anderen Kontext wiedergeben oder in einem Portal als eigenst&amp;#xE4;ndige Komponente dargestellt wird. Das kann ein Weblog-Eintrag sein, ein Artikel, ein Forumsbeitrag oder ein interaktives Widget.
  8. Das Element aside enth&amp;#xE4;lt erl&amp;#xE4;uternde und weiterf&amp;#xFC;hrende Informationen, welche die Hauptinhalte erg&amp;#xE4;nzen. Gute Beispiele f&amp;#xFC;r den richtigen Einsatz dieses Elements sind Marginalien mit Definitionen oder Erl&amp;#xE4;uterungen, Querverweise zu anderen relevanten Ressourcen oder K&amp;#xE4;sten mit Hintergrundinformationen, aber h&amp;#xE4;ufig wird aside auch einfach zur Auszeichnung von Randspalten mit Navigationsbereichen, Kommentaren etc. verwendet werden. In einem Artikel &amp;#xFC;ber Webstandards und das diesbez&amp;#xFC;gliche Engagement der Webkrauts k&amp;#xF6;nnten wir wie folgt vorgestellt werden.
  9. Das Element footer enth&amp;#xE4;lt sichtbare Metainformationen &amp;#xFC;ber eine Webseite oder ein Sektionselement. Typische Inhalte sind Informationen dar&amp;#xFC;ber, wer den Inhalt der Seite oder Sektion verfasst hat (wobei diese mit address ausgezeichnet werden), oder Links zu anderen Dokumenten, beispielsweise das Impressum oder Angaben zum Datenschutz. Der Footer muss nicht unbedingt am Ende der Sektion stehen, aber &amp;#xFC;blicherweise tut er das (daher der Name). footer-Elemente k&amp;#xF6;nnen section-Elemente enthalten, um die Inhalte zu unterteilen.
  10. Aktuelle Versionen von Opera, Safari und Firefox stellen alle in diesem Artikel vorgestellten Elemente wie gew&amp;#xFC;nscht dar. Lediglich ein article, aside, footer, header, hgroup, nav, section { display: block; } ist notwendig, damit die neuen Elemente sich so verhalten, wie man es erwarten k&amp;#xF6;nnte. &amp;#xC4;ltere Browser haben allerdings einige Probleme. Firefox 2 (und jeder andere Browser mit einer Gecko-Version kleiner als 1.9b5) schlie&amp;#xDF;t unbekannte Elemente, sobald er auf ein Blockelement st&amp;#xF6;&amp;#xDF;t wie p, h1, div und so weiter. Auf diese Browser brauchen Webentwickler allerdings heute nicht mehr zu achten. Die Mozilla Foundation hat die Unterst&amp;#xFC;tzung f&amp;#xFC;r Firefox 2 mittlerweile eingestellt &amp;#x2013; und auch wir sollten das tun. Im Internet Explorer gibt es ein &amp;#xE4;hnliches Problem, und das zieht sich durch s&amp;#xE4;mtliche Versionen, die heute noch relevant sind &amp;#x2013; leider sind das alle Versionen bis hinab zum IE 6. Der IE schlie&amp;#xDF;t unbekannte Elemente stets sofort, ganz gleich, welches Element dem unbekannten Element nachfolgt. Im DOM (Document Object Model) dieser Browser wird aus &lt;section class=&quot;sektion&quot;&gt; &lt;h1&gt;Foo&lt;/h1&gt; &lt;p&gt;Bar&lt;/p&gt; &lt;/section&gt; &lt;p&gt;Baz&lt;/p&gt; folgendes: &lt;section class=&quot;sektion&quot;&gt;&lt;/section&gt; &lt;h1&gt;Foo&lt;/h1&gt; &lt;p&gt;Bar&lt;/p&gt; &lt;/section&gt;&lt;//section&gt; &lt;p&gt;Baz&lt;/p&gt; &lt;section&gt; und &lt;/section&gt;; werden also nicht als &amp;#xF6;ffnenden und schlie&amp;#xDF;enden Tag eines Elements erkannt, sondern in beiden F&amp;#xE4;llen als Start-Tag eines eigenen Elements, dem jeweils ein schlie&amp;#xDF;ender Tag hinzugef&amp;#xFC;gt wird. So entsteht &lt;//section&gt; als schlie&amp;#xDF;endes Tag f&amp;#xFC;r &lt;/section&gt;. Aus Container-Elementen, die sich per CSS stylen oder per Scripting ansprechen lassen, werden so leere Elemente, mit denen Webautoren nichts mehr anfangen k&amp;#xF6;nnen. Dieses Problem k&amp;#xF6;nnen Webautoren nicht ignorieren. Peter Kr&amp;#xF6;ner schl&amp;#xE4;gt daher in einem lesenswerten Artikel einige Workarounds vor. Die beste L&amp;#xF6;sung stellt dabei das HTML5 enabling script von Remy Sharp dar. Dar&amp;#xFC;ber kann jedes (unbekannte) Element beim Browser per JavaScript angemeldet werden. F&amp;#xFC;r das section-Element sieht das beispielsweise so aus: document.createElement(&apos;section&apos;); Die angemeldeten Elemente werden dann wie bekannte Elemente behandelt, d.h. Webautoren k&amp;#xF6;nnen mit ihnen in allen Belangen arbeiten. Das HTML5 enabling script meldet alle neuen HTML5-Elemente an und wird im Gleichschritt mit dem HTML5-Entwurf aktualisiert. Gewissenhafte Webautoren sehen jedoch sofort das Problem an dieser Methode: Wenn im Browser JavaScript nicht aktiviert ist, funktioniert das Skript und somit vermutlich die gesamte Website nicht. Im professionellen Einsatz ist diese Methode folglich untauglich, da es schlichtweg schlechter Stil ist, aktiviertes JavaScript vorauszusetzen.