Heute möchte ich etwas über das verwendete Design schreiben. Da das Projekt Schulungszwecken dient, habe ich mich für ein recht einfaches Design entschieden. Auch muss ich zugeben bin ich nicht der wirkliche Kreative in diesem Bereich.
Screen-Design
Das Design besitzt den klassischen Aufbau eines 2spaltigen Layouts mit einem Kopfbereich und einer Fußzeile. So können alle wichtigen Informationen übersichtlich untergebracht werden.
+------------------------------------+
| Website-Titel |
| Slogan |
+---------------+--------------------+
| Seitentitel | Sidebar |
| Einführung | +----------------+ |
| +-----------+ | | Navigation | |
| | Box-Titel | | +----------------+ |
| | Box-Text | | +----------------+ |
| +-----------+ | | Administration | |
| | +----------------+ |
+---------------+--------------------+
| Copyright |
+------------------------------------+
Reset-Datei
Um die unterschiedlichen CSS-Werte der verschiedenen Browser besser in den Griff zu bekommen, wird als erstes eine Reset-Datei geladen die alle wichtigen Style-Angaben für mich vordefiniert.
- body, div, dl, dt, dl, ul, ol, li, h1, h2, h3, h4, h5, h6,
- pre, form, fieldset, input, p, blockoute, th, td {
- margin:0;
- padding:0;
- }
- h1, h2, h3, h4, h5, h6 {
- font-size:100%;
- }
- ol, ul {
- list-style:none;
- }
- adress, caption, cite, code, dfn, em, strong, th, var {
- font-style:normal;
- font-weight:normal;
- }
- table {
- border-collapse:collapse;
- border-spacing:0;
- font-size:100%;
- }
- fieldset, img {
- border:0;
- }
- caption, th, td {
- text-align:left;
- vertical-align: top;
- }
- q:before, q:after {
- content:”;
- }
Bei umfangreicheren Designs im Webbereich hat sich weiterhin eingebürgert, dass man das Layout der Site vom Design getrennt behandelt. Auch ich habe zwei separate Datei („layout.css“ und „design.css“) dazu erstellt.
Layout-Datei
Als Erstes möchte ich das Layout erklären. Um die Website zu zentrieren, habe ich um den gesamten Inhaltsbereich eine „div“-Container erstellt. Somit kann ich alles gut mittig mit einer Breite von 720 Pixeln platzieren.
- body {
- margin: 0;
- padding: 0;
- text-align: center;
- }
- #page {
- width: 720px;
- margin: 0 auto;
- text-align: left;
- }
Die Überschriften innerhalb meines Kopfbereichen sind jetzt sehr nah am Rand weswegen ich ihnen etwas Abstand gegeben habe.
- #branbing {
- padding: 5px;
- }
Im Prinzip werde ich jedem „div“-Container diesen Abstand geben. Ich habe ihn bewusst in die Layout-Datei und nicht in die Design-Datei geschrieben, weil er die Breiten der „div“-Container beeinflusst.
Um die zwei Spalten zu platzieren, habe ich beide per „float“-Befehl angeordnet, ihnen Breiten und Abstände gegeben.
- #content {
- float: left;
- width: 500px;
- margin-right: 10px;
- padding: 5px;
- }
- #sidebar {
- float: left;
- width: 190px;
- padding: 5px;
- }
Damit der Fußbereich dann auch wieder unterhalb dieses Bereiches weiterläuft, habe ich auch ihn in der Layout-Datei ein paar Werte gegeben.
- #copyright {
- clear: both;
- padding: 5px;
- }
Zum Schluss habe ich noch den Inhalt der Administrationsbox layoutet. Dabei rücke ich den Code per Tab weiterein je tiefer die Verschachtelung ist.
- #content .adminBox {
- font-size: 0.8em;
- }
- #content .adminBox p {
- margin: 0;
- }
- #content .adminBox li {
- display: inline;
- }
- #content .adminBox li a {
- float: left;
- display: block;
- }
Design-Datei
Zur Zeit habe ich nur wenige design-technische Änderungen vorgenommen. Als erstes habe ich allgemeinen Definitionen erstellt.
- body {
- color: #FFF;
- background-color: #CCC;
- font: 14px/1.4em “Trebuchet MS”, Arial, Helvetica, sans-serif;
- }
- input:focus, textarea:focus, select:focus {
- color: #000;
- background: #fff;
- border: 1px solid red;
- }
Div-Page
Der „page“-Container bekommt zusätzlich noch eine kleine Überarbeitung.
- #page {
- color: #000;
- background-color: #FFF;
- }
Div-Branding
Da in meinem Fall der Kopfbereich nur Angaben über das Projekt enthalten soll besteht dieser nur aus zwei Überschriften.
-
<div id="branding">
-
<h1>RE-Design</h1>
-
<h2>REDcms Advents</h2>
-
</div>
In der CSS-Datei wird dann folgende Formatierung darauf angewendet:
- #branding {
- background-color: #333;
- color: #FFF;
- font-family: Georgia,”Time New Roman”, Times, serif;
- font-style: italic;
- }
- #branding h1 {
- font-size: 3em;
- line-height: 1em;
- }
- #branding h2 {
- font-size: 1.5em;
- line-height: 1em;
- color: #3C0;
- }
Div-Content
Als nächstes werden alle wichtigen Tags im „content“-Container definiert.
- #content h2, #content h3, #content h4, #content h5, #content h6 {
- font-family: Georgia,”Time New Roman”, Times, serif;
- font-style: italic;
- line-height: 1em;
- margin-bottom:0.5em;
- }
- #content h2 {
- font-size: 2em;
- }
- #content h3 {
- font-size: 1.4em;
- }
- #content h4 {
- font-size: 1.2em;
- }
- #content h5 {
- font-size: 1.1em;
- }
- #content h6 {
- font-size: 1em;
- }
- #content p {
- margin-bottom: 1em;
- text-align: justify;
- }
Zusätzlich werden noch die Listen der Metaangaben gestylt.
- #content ul.meta {
- font-size: 0.8em;
- }
- #content ul.meta li {
- margin-bottom: 0.5em;
- }
Auch die angezeigten Formulare sind nicht von der Überarbeitung durch das Design-CSS verschont geblieben.
- #content .add fieldset {
- border: 1px solid #333;
- padding: 5px;
- margin-bottom: 1em;
- }
- #content .add legend {
- border: 1px solid #333;
- background-color: #CCC;
- padding: 0 1em;
- }
- #content .add label {
- font-size: 0.8em;
- }
- #content .add label.before {
- display: block;
- }
- #content .add input,
- #content .add textarea {
- width: 470px;
- font-family: sans-serif;
- font-size: 1em;
- padding: 5px;
- }
- #content .add option:hover {
- background-color: #CCC;
- }
Div-Sidebar
Da in der Sidebar mehrere Boxen existieren können, habe ich als erstes grundlegende Einstellungen vorgenommen.
- #sidebar .box {
- border:1px solid;
- margin-bottom: 1em;
- }
- #sidebar .box h4 {
- background-color:#333;
- color: #FFF;
- text-align: center;
- margin-bottom: 0.2em;
- }
Für die Navigation gab es dann noch separate Einstellungen.
- #sidebar #navigation {
- }
- #sidebar #navigation ul {
- margin: 5px 5px 1em 5px;
- }
- #sidebar #navigation ul ul {
- margin: 0 0 0 1.5em;
- }
Ebenso für den Login bzw. das Logout und die Box „über mich“.
- #sidebar #login {
- }
- #sidebar #login p {
- font-size: 0.8em;
- margin: 5px;
- }
- #sidebar #login legend {
- font-style: italic;
- margin: 0;
- padding: 0;
- text-transform: uppercase;
- }
- #sidebar #login strong {
- font-weight: bold;
- text-transform: uppercase;
- }
- #sidebar #login ul {
- margin: 5px;
- }
- #sidebar #login a {
- padding-left: 20px;
- }
- #sidebar #login .page {
- background: transparent url(“/REDcms/templates/images/icons/page.png”) no-repeat;
- }
- #sidebar #login .box {
- background: transparent url(“/REDcms/templates/images/icons/box.png”) no-repeat;
- border: none;
- }
- #sidebar #login .menu {
- background: transparent url(“/REDcms/templates/images/icons/menu.png”) no-repeat;
- }
- #sidebar #about_us {
- }
- #sidebar #about_us p {
- font-size: 0.8em;
- margin: 5px;
- }
Div-Footer
Was noch fehlt, ist der Fußbereich. Hier sind nur die Farben geändert worden.
- #copyright {
- background-color: #333;
- color: #FFF;
- }
- #copyright a {
- color: #FFF;
- }
Div-Debug
Eine kleine Besonderheit habe ich meinen Debugging gegeben. Jedes mal wenn die allgemeine Funktion „code()“ aufrufe, erzeuge ich eine „div“-Container mit der Klasse „debug“.
- function code($msg, $code=HTML_CODE)
- {
- $msg = print_r($msg, true);
-
- if($code == HTML_CODE)
- {
- $msg = htmlentities($msg);
- }
-
- echo ‘<div class=”debug”><pre>’.$msg.‘</pre></div>’;
- }
Zusätzlich designe ich per CSS das dieser Container über allem anderen angezeigt werden soll. Somit sehen ich ihn immer.
- .debug {
- position:absolute;
- width: 300px;
- height: 400px;
- overflow: auto;
- text-align: left;
- padding: 5px;
- color: #FFF;
- background-color: #300;
- border: 1px solid #000;
- }
Print-Design
Eigentlich wollte ich eine spezielle Druckversion per CSS für die Ausgabe erstellen – doch leider fehlte mir dafür die Zeit. Da sie aber auch schon auf meiner ToDo-Liste steht, wird sie bestimmt im nächsten Release vorhanden sein.
Ich hoffe ihr habt Verständnis dafür.
Downloads