Weblog Startseite Twitter Tweets von @intervista_ag

Kategorie

Archiv für die Kategorie ‘Tipps & Tricks’

Webmontag II – Formulare und ihr Aufbau

Formulare sind auf vielen Webseiten wichtiger Bestandteil der Bedienung und Interaktion. Bei WebApplikationen ist es häufig noch viel wichtiger besonderes Augenmerk auf Formulare zu haben. Gerade wenn diese sehr lang sind, in mehreren Teilschritt ausgefüllt oder sich über mehrere Seiten erstrecken.

Früher hat man versucht einem Formular mit Hilfe einer teilweise monströsen Tabelle ein aussehen zu geben. Dies gehört der Vergangenheit an.
xHTML im Zusammenspiel mit CSS, bietet eine menge Möglichkeiten ein Formular schlanker und semantisch richtig zu programmieren.

Ein Formular leiten man wie schon immer mit <form> ein und beendet es mit </form>. Ein Input- Feld ist natürlich weiterhin ein Input-Feld. Da hat sich nichts geändert.

  1. <input type=“text“ name=“inputText“ />
  2. <input type=“password“ name=“inputPassword“ />
  3. <input type=“checkbox“ name=“inputCheckbox“ />
  4. <input type=“radio“ name=“inputRadio“ />
  5. <input type=“reset“ name=“inputReset“ />
  6. <input type=“submit“ name=“inputSubmit“ />
  7. <input type=“file“ name=“inputFile“ />
  8. <input type=“images“ name=“inputImages“ />
  9. <input type=“hidden“ name=“inputHidden“ />

Nun sollte auch jedes Formularfeld beschriftet werden damit der User weiß was es mit dem Feld auf sich hat.

Dafür gibt es den Element <label>. Mit <label> hat man ein eindeutig zum Element gehörende Beschriftung.

  1. <p><label for=“vorname“>Vorname</label>
  2. <input type=“text“ name=“vorname“ id=“vorname“ /></p>

Mithilfe des Attributs for, lässt sich eine Beziehung zum Formularfeld mit der gleichnamigen ID herstellen.

Bei größeren Formularen bietet es sich häufig an einzelne Teile eines Formulars logisch zu trennen. Bei einem Kontaktformular könnte man zwischen persönlichen Angaben, Kontaktdaten und der eigentlichen Nachricht unterscheiden.
Auch zu diesem Thema gibt es eine Lösung ganz ohne Tabellen oder DIV- Elemente.

Und zwar gibt es den fieldset und legend Element. Das fieldset umrandet den betreffenden Formularbereich und legend nennt den Title oder die Überschrift.

  1. <form action="kontaktformular.php" method="post">
  2.    <fieldset><legend>Ihre persoenlichen Daten</legend>
  3.       <p><label for="vorname">Vorname:</label><input type="text" name="Vorname" id="vorname" /></p>
  4.       <p><label for="name">Name:</label><input type="text" name="Name" id="name" /></p>
  5.    </fieldset>
  6.  
  7.    <fieldset><legend>Ihre Kontaktdaten</legend>
  8.       <p><label for="email">eMail:</label><input type="text" name="eMail" id="email" /></p>
  9.       <p><label for="telefon">Telefon</label><input type="text" name="Telefon" id="telefon" /></p>
  10.    </fieldset>
  11.  
  12.   <fieldset><legend>Ihre Nachricht</legend>
  13.      <p><label for="nachricht">Nachricht:</label>
  14.       textarea name="Nachricht" rows="10" cols="40" id="nachricht"></textarea></p>
  15.   </fieldset>
  16.  
  17.   <fieldset>
  18.       <input type="submit" name="senden" value="Senden" />
  19.   </fieldset>
  20. </form>

Standardmäßig werden die Formularbereiche mit normalen Linien umrandet. Dies kann man nach belieben natürlich mit CSS verändern.

Nun sollte das ganze noch ein wenig mit CSS gestaltet werden.

Ein nicht sehr geläufiges Element ist sicherlich das <label> Element. Hier gibt es in erster Linie zwei unterschiedliche Ansätze der Darstellung. Die eine ist das die Beschriftung mit einem bestimmten Abstand zum Feld steht. Die andere Variante ist, dass die Beschriftung des Feldes über dem Feld steht.

Für die erste Variante:

  1. lable {
  2.    display: block;
  3.    width: 150px;
  4.    float: left;
  5. }

oder für die Darstellung oberhalb des Eingabefeldes

  1. label {
  2.    display: block;
  3. }

Webmontag I – Codelistings mit XHTML & CSS

In diesem Artikel geht es darum Codebeispiel auf einer Webseite übersichtlich zur Verfügung zu stellen.

In erster Linie gibt es zum Darstellen von Codebeispielen das Element <code></code> welches in den meißten Browser den Inhalt in einer Schreibmaschinen- Schrift anzeigen lässt.

  1. <code>Das ist ein Programmcode</code>

Dies ist ausreichend wenn ein Tag oder ein ganz kurzes Codebeispiel in einem Fließtext vorkommt. Geht es aber darum größere Listings darzustellen, ist der  <code>- Tag nicht ausreichend.
Viel mehr wäre es wichtig die Zeilennummer mit abzubilden und unterschiedliche Highlights zu haben. Der Programmcode und die Kommentaren sollen zum Beispiel unterschiedliche Highlights haben, so wie man es von diversen Editoren kennt.

Wie das Beispiel zeigt, gibt es durchaus Möglichkeit dies mit xHTML und CSS zu bewerkstelligen. Hierzu wird die geordnete, nummerierte Liste zu Hilfe genommen. Sie wird eingeleitet mit einem <ol> und beendet mit </ol>.
Zwischen dem Anfangs und Endtag kommen die einzelnen Listeneinträge (<li></li>). Ein Listeneinträg spiegelt eine Zeile Code wieder.

Jetzt sollte möglichst ein Kommentar innerhalb des Codebeispieles eine andere Farbe (grau) haben als zum Beispiel der HTML Code.
Dafür bedienen wir uns einiger HTML- Klassen. In diesem Blog werden unter anderem folgende farblich unterschiedliche Klassen benutzt:

  • Kommentare (<code class=“kommentar“)
  • HTML (<code class=“html“>)
  • Programmcode (<code class=“source“>)
  • CSS (<code class=“css“>)

Das ganze ist aber noch nicht zu gebrauchen. Was wir benötigen ist CSS um den einzelnen Elementen die richtige Formatierung zu geben.

  1. /* Fuer die Darstellung von Codezeilen */
  2. ol.code {
  3.    background-color: #DB663B;
  4.    color: #FFFFFF;
  5.    border-top: 1px solid;
  6.    border-right: 1px solid;
  7.    border-bottom: 1px solid;
  8.    border-left: 1px solid;
  9.    list-style-type: decimal;
  10.    margin-left: 20px;
  11.    margin-right: 40px;
  12. }
  13. ol.code > li {
  14.    background-color: #FFFFCC;
  15.    border-bottom-width: 1px;
  16.    border-bottom-style: solid;
  17.    border-bottom-color: #999999;
  18.    padding-left: 10px;
  19.    color: #FFFFFF;
  20. }
  21. code {
  22.    font-family: "Courier New", Courier, mono;
  23.    color: #000000;
  24.    font-size: 11px;
  25. }
  26.    .html, .source {
  27.    color: #0000FF
  28. }
  29. .css {
  30.    color: #FF00FF;
  31. }
  32. .kommentar {
  33.    color: #999999;
  34. }

Um die Darstellung seinen Anforderungen entsprechend zu relasieren, gibt es noch ein paar kleine Beispiele um ein Codebeispiel noch leserlicher zu machen.

Es ist kein Problem ein Programmzeile und ein Kommentar in ein und der selben Zeile zu schreiben.

  1. echo "Hallo Welt" /*Das ist ein Kommentar */
  2. <li><code class="html">echo &quot;Hallo Welt&quot;</code>
  3. <code class="kommentar">/*Das ist ein Kommentar</code></li>

Auch Lehrzeichen lassen sich realsieren.

  1. &nbsp;

Genaus gut kann man natürlich auch eine Klasse erstellen. Die Klasse erhält dann zum Beispiel einen gewünschten Einzug von 20px.