Wenn ich Fragen zu HTML5 via E-Mail oder Twitter erreichen, ist es manchmal schade, dass einige sehr gute Fragen (nebst Antworten) der Allgemeinheit entgehen. Deshalb eröffne ich hier eine kleine Sammlung mit interessanten Fragen und meinen Antworten der letzten paar Wochen zum Buch und zu HTML5. Wenn es sich lohnt wird das eine kleine Artikelserie. Wer mehr Fragen hat: Nur raus damit, egal ob in die Kommentare oder per Mail oder anderweitig!

Warum HTML5?

Ich erkenne nicht so ganz den Vorteil von HTML5, abgesehen vielleicht von Video- und Canvas-Element. Warum sollte ich zu HTML5 migrieren?

Wenn dir HTML5 etwas überflüssig vorkommt, liegt das vermutlich daran, dass du an Websites denkst. Für Websites ist HTML5 aber nicht vorrangig gemacht, sondern für Webapplikationen. Für den neuen Firmenauftritt der Beispielmüller GmbH wird man vermutlich kein HTML5 brauchen (auch wenn es nicht schaden wird), wohl aber für Webapps, die Desktop-Anwendungen Konkurrenz machen sollen. HTML5 hieß nicht umsonst ursprünglich „Web Applications 1.0“. Für den Einsatz von HTML5 für Websites spricht neben den neuen semantischen Elementen und den neuen Features für Formulare vielleicht noch, dass die Syntax ein klein wenig einheitlicher und einfacher ist und Möglichkeiten zur Verkürzung bietet (sofern man denn auf so etwas steht). Man muss aber nicht migrieren – wenn man mit XHTML 1 oder HTML 4 alles machen kann was man möchte, kann man ruhigen Gewissens beim Altbewährten bleiben. Ich empfehle an dieser Stelle einfach mal einen Blick auf drei Dinge, für die man bereits jetzt mit HTML5 (im jedem Browser) anstellen kann.

Wann kommt das E-Book?

Wird es dein Buch auch als PDF oder ePub fürs iPad geben? Ständig eine Bibliothek in Papierform rumschleppen ist sehr lästig.

Ja, eine E-Book-Ausgabe (sowohl PDF als auch ePub) ist geplant und soll laut Verlag "in Kürze" (wann immer das auch genau sein mag) verfügbar sein. Ich werde es ankündigen wenn es soweit ist.

Welches Element für Fat Footers?

Sollte man sog. „Fat Footers“ (also Footer mit viel Inhalt, Linklisten o.Ä.) auch in eine <aside> packen? Oder in einen <footer>? Eine Blog-Sidebar und ein Fat Footer unterscheiden sich ja inhaltlich kaum.

Ein Footer gehört prinzipiell in ein <footer>-Element, denn genau dafür ist das Element da. Es ist laut Spezifikationen auch explizit für typische Fat-Footer-Inhalte freigegeben (...typically contains information about its section such as who wrote it, links to related documents, copyright data, and the like). Dabei ist das <aside>-Element durchaus ähnlich, allerdings muss man beachten, dass es Sectioning Content ist, sich also auf die Outline auswirkt. Möchte man, dass ein Footer ein eigener Seitenbereich ist? Wahrscheinlich in den meisten Fällen nicht.

Wie rotiere ich Elemente auf einer Canvas?

Wie kann ich in einem canvas mit mehreren Elementen ein einzelnes Element rotieren ohne dass die anderen mitrotieren? Bei meinen Versuchen mit context.rotate() rotiert immer der gesamte Inhalt. Habe schon daran gedacht alle Elemente auf einzelne canvas zu zeichnen und diese per z-index übereinanderzulegen aber ich hoffe, Sie können mir einen einfacheren Weg zeigen.

Die Sache ist ganz einfach: es gibt keine „Elemente“ auf einer Canvas. Eine Canvas ist nur eine Malfläche mit Pixeln und rotiert wird immer nur das unsichtbare Koordinatensystem, an dem die Pixel gezeichnet werden. Mein Vorschlag für das Problem:

  1. context.save()
  2. context.rotate()
  3. „rotiertes“ Element zeichnen
  4. context.restore()
  5. alle anderen Elemente zeichnen

So kommt nur das zu rotierende Element in den Genuss eines gedrehten Koordinatensystems, während alle anderen nach dem Aufruf von context.restore() wieder anhand eines normalen Koordinatensystems gezeichnet werden.

Weitere Fragen?

Eure Fragen zu HTML5 beantworte ich gerne! Einfach eine E-Mail schreiben oder Formspring bemühen und ein bisschen Geduld haben – falls ich gerade unterwegs bin, kann es mit Antwort manchmal etwas dauern, doch früher oder später schreibe ich garantiert zurück.