Posts mit dem Label html5 werden angezeigt. Alle Posts anzeigen
Posts mit dem Label html5 werden angezeigt. Alle Posts anzeigen

Montag, 11. Februar 2013

HTML5 div horizontal und vertikal zentrieren






Hier ein kleiner Lehrgang wie man den Inhalt einer Seite immer zentriert in der Mitte darstellen kann, egal welche Bildschirmauflösung jemand gerade verwendet. Dabei werde ich euch eine Methode vorstellen die nur auf CSS basiert, und eine die mit Javascript und jQuery funktioniert. Mit diesem Code könnt ihr Divs garantiert immer zentriert in der Mitte darstellen lassen, egal ob der User nun Internet Explorer, Chrome, Firefox, Safari, Opera oder Mobile Browser auf Handys oder Tablets verwendet.




1. Div Horizontal in der Mitte nur mit CSS ausrichten

In diesem ersten Beispiel wird nur ein div horizontal in der Mitte dargestellt. Zur besseren Ansicht habe ich den Hintergrund rot gemacht. Wichtig ist hier das margin auto, es sorgt dafür, dass das div in der Mitte bleibt.



 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">  
 <html>  
 <head>  
 <title>Div Horizontal zentriert Demo</title>  
 <style type="text/css">  
 .DivHorizontal{  
   width:180px;  
   height:100px;  
   margin:0 auto;  
   background-color:red;  
 }  
 </style>  
 </head>  
 <body>  
 <div class="DivHorizontal">  
   <p>Horizontal zentriert mit CSS</p>  
 </div>  
 </body>  
 </html>  




2. Div Horizontal und Vertikal in der Mitte zentrieren mit CSS

Im zweiten Beispiel wird ein Div genau in der Mitte des Browserfensters dargestellt, egal wie gross es ist. Wichtig hier ist das top und left 50%, damit wird die obere linke Ecke genau in der Mitte platziert und mit margin -50px und -90px wird dann genau die Hälfte der Breite und Höhe abgezogen so das es genau in der Mitte ist.




 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">  
 <html>  
 <head>  
 <title>Div Horizontal und Vertikal zentriert Demo</title>  
 <style type="text/css">  
 .DivHorizontalVertikal{  
      width:180px;  
      height:100px;  
      position:absolute;  
      left:50%;  
      top:50%;  
      margin:-50px 0 0 -90px;  
      background-color:red;   
 }  
 </style>  
  </head>   
  <body>   
  <div class="DivHorizontalVertikal">   
   <p>Horizontal und Vertikal zentriert mit CSS</p>   
  </div>   
  </body>   
  </html>   




3. Div mit HTML5 jQuery Horizontal und Vertikal in der Mitte zentrieren

Im letzten Beispiel wird ein Div mittels jQuery horizontal und vertikal in der Mitte angeordnet.
Dabei wird das div beim ersten Mal laden mit document ready und beim verkleinern oder vergrössern des Fensters neu platziert. Die Logik ist eigentlich die selbe wie bei den CSS Beispielen einfach mit Javascript.



 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">  
 <html>  
 <head>  
 <title>Div mit HTML5 jQuery Horizontal und Vertikal in der Mitte zentrieren</title>  
 <script type="text/javascript" src="http://code.jquery.com/jquery-latest.pack.js"></script>  
 <style type="text/css">  
 .DivMitte {  
      background-color:red;  
      width:180px;   
   height:100px;   
 }  
 </style>  
 <script type="text/javascript">  
 jQuery.fn.centerElement = function() {  
      return this.each(function(){  
           jQuery(this).css({'position':'fixed','left': ((jQuery(window).width() - jQuery(this).outerWidth()) / 2) + jQuery(window).scrollLeft() + "px",'top':(($(window).height() - jQuery(this).outerHeight()) / 2) + jQuery(window).scrollTop() + "px"}).trigger('resize');                 
      });            
 };  
 </script>  
 </head>  
 <body>  
 <div class="DivMitte">  
      <p>Div in der Mitte platziert mit jQuery</p>  
 </div>  
 <script type="text/javascript">  
 jQuery(document).ready(function(){  
           jQuery(".DivMitte").centerElement();  
      });  
 $(window).resize(function () {  
                jQuery(".DivMitte").centerElement();  
      });  
 </script>  
 </body>  
 </html>  



Ich hoffe dieses Tutorial hat euch gefallen und war nützlich für euch.

Viel spass beim ausprobieren!



Montag, 30. April 2012

WebGL - Die Zukunft des Internets



WebGL (Web Graphics Library) ist Momentan eine der spannendsten Innovationen im Webbereich.
Und sicher ein Thema wo sich Webmaster und Webpublisher bald ein wenig auskennen müssen. Darum hier eine Übersicht über WebGL, mit allen Informationen und vielen Links zu Tutorials, Beispielen und Ressourcen.

Was ist WebGL?

Es ist eine 3D Technologie zur Anzeige von hardwarebeschleunigten 3D-Graphiken. Hardwarebeschleunigt heisst, der Browser greift neu direkt auf die Rechenleistung der Graphikkarte zu um komplexe 3D-Inhalte anzuzeigen. Damit wird es möglich, rechenintensive Berechnungen zur Darstellung von dreidimensionalen Objekten, wie man schon aus Spielen wie den beliebten Ego Shootern kennt, auch im Browser anzuzeigen. Damit haben Webseitenbetreiber nun eine ganze Palette von neuen Möglichkeiten ihre Webseite zu gestalten.
Auf der Code Ebene funktioniert das ganze mit HTML5 Elementen. Es wird JavaScript benutzt um auf Funktionen einer angepassten Version von OpenGL ES (Open Graphics Library for Embedded Systems) zuzugreifen.


Wer hat es Entwickelt, und warum gibt es WebGL eigentlich?


WebGL wurde von der Kronos Group die in San Francisco beheimatet ist entwickelt. Die Version 1.0 der WebGL Spezifikation erschien im März 2011. Die Idee aber entstand schon im Jahre 2009 als sich verschiedene Firmen, darunter Browser- und Hardware Hersteller wie NVIDIA, Google, AMD, Opera, Mozilla, etc., zusammengeschlossen haben um einen gemeinsamen offenen Standard zu entwickeln. Der Fortschritt in der Hardwareentwicklung, und der Mangel an einem freien Standard bei 3D-Inhalten und Spielen im Browser, gaben den Ausschlag für diese Zusammenarbeit. Bisher war es nur mit proprietärer Software wie z.B.Adobe Flash möglich 3D-Inhalte im Browser anzuzeigen, und das wollte man ändern.


Welche Browser unterstützen WebGL?

WebGL wird im Moment von allen grösseren Browsern also von Apple Safari (WebKit), Google Chrome, Mozilla Firefox und Opera unterstützt. Einzig beim Internet Explorer gibt es erst einen inoffiziellen Workaround und noch keine Pläne diesen Standard ins Programm aufzunehmen. Microsoft setzt beim Internet Explorer eher auf DirektX für 3D Graphiken, und äussert bedenken wegen der Sicherheit.
Es ist aber fraglich, ob sich Microsoft noch lange diesem Standard wiedersetzten kann.

Hast du schon WebGL? Teste es hier:
http://get.webgl.org/


WebGL für Anfänger

Auf der Seite WebGL Playground kann man seine ersten Versuche mit WebGL machen. Diese Plattform bietet Online ein ganzes HTML5-Skelett aus HTML, CSS und JS schon an, so das man direkt im Browser WebGL Objekte entwickeln und den Code laufen lassen kann. Auch bietet die Seite neben einer schönen Dokumentation auch viele Beispiele die man sich anschauen und laufen lassen kann. Sicher eine sehr nützliche Seite für Anfänger.


Beispiele mit WebGL
Hier einige Beispiele die mögliche Anwendungen der WebGL Bibliothek zeigen. Man sieht das Potential von WebGL, obwohl es erst in einem frühen Stadium ist.

Ein lustiges Spiel mit Google Maps das mit WebGL läuft:

http://www.playmapscube.com/


http://www.ahoi.in/en/2012/supershape-js/


http://lab.aerotwist.com/webgl/


http://www.waterunderground.info/


Virtualisierung von Schweizer Adressen
http://29a.ch/sandbox/2011/addresscloud/




Fazit

Eine sehr interessante Technik die sehr viel Potential hat. Man kann sich z.B. dreidimensionale Webseiten vorstellen wo man mit einem Avatar durchlaufen kann. So haben User einen anderen Zugang zu den Inhalten als bei "normalen" Webseiten. Man stelle sich einen virtuellen Einkaufsbummel durch ein 3D Einkaufszentrum mit 3D Regalen vor, oder einen Museums-Rundgang, eine virtuelle Reise, etc...
Auch die Spiele-Industrie wird enorm davon profitieren. Spiele mit ausgeklügelten 3D-Graphiken wie man sie nur von Desktop Spielen kennt kann man nun auch im Browser spielen, und das ohne etwas zu installieren. Das wird die Spielbegeisterten sicher freuen, und durch die Einfachheit noch mehr Spieler anziehen. Und auch die Hersteller der Spiele werden profitieren, den die haben dann weniger Copyright Probleme, da der Inhalt nur flüchtig im Browser, oder besser gesagt in der Cloud läuft.
Allerdings muss man dazu auch die richtige, genügend Leistungsfähige Hardware haben sonst funktioniert es auch im Browser nicht.
Der wahrscheinlich grösste Vorteil von WebGL ist, das man nun Platformübergreifend, und auch für Mobile Geräte und Tablets, entwickeln kann und das unabhängig vom Betriebssystem. Chrome OS lässt grüssen.
Nur Microsoft scheint es wiederum vorzuziehen sein eigenes Süppchen im 3D-Bereich zu kochen und riskiert damit sich ins Abseits zu manövrieren.



Ressourcen und Links

https://www.khronos.org/registry/webgl/specs/1.0/ - Spezifikation
http://www.khronos.org/webgl/wiki/Tutorial - Offizielles Tutorial
http://aerotwist.com/tutorials/ - Sehr gutes WebGL Tutorial
http://webglplayground.net/documentation - WebGL Tutorial
https://developer.mozilla.org/de/WebGL - Sehr gute Mozilla Web GL Tutorials, auch auf Deutsch
http://www.chromeexperiments.com/webgl - Jede Menge Beispiele von WebGL
http://learningwebgl.com/blog/ - Jede Menge WebGL Tutorials
http://planet-webgl.org/ - Informationen und How to's
http://www.nihilogic.dk/labs/webgl_cheat_sheet/WebGL_Cheat_Sheet.htm - WebGL Cheat Sheet
http://de.wikipedia.org/wiki/WebGL - WebGL Wikipedia

Matrix Bibliotheken
  • Sylvester, eine JavaScript Bibliothek für die Matrix Multiplikation
  • mjs, etwas Ähnliches das speziell für WebGL entwickelt wurde.
  • glMatrix, nochmals etwas Ähnliches aber sehr schnell.

 

WebGL Frameworks


Welcher Browser für WebGL?


Viel Spass!