Sven Finke // Münsteranischer Webentwickler und Designer. Gerade im neuen Betrieb angekommen und gespannt auf die Herausforderungen die mich hier erwarten :)
Wie kann man ein Element auf 100% Höhe skalieren und trotzdem noch margin und padding Werte hinzufügen? Durch das BoxModel werden padding und margin Werte leider auf die Höhe des Elements drauf gerechnet. So erwartet man von einem Element mit einem padding von 5px und einer Höhe von 100% vielleicht das es - wenn das Elternelement 200px hoch ist - eine Höhe von 190px. Allerdings wird einem da schnell ein Strich durch die Rechnung gemacht. Das Element wird eine Höhe von 200px haben. Der Padding Wert wird da dann noch hinzugerechnet. Also bekommt man ein 210px hohes Element.
Was macht man nun damit man die korrekte Höhe bekommt? Dazu muss man sich erstmal wieder ein paar andere Angaben auf den Plan rufen: top und bottom. Kombiniert man diese nun mit dem Wert auto für die Höhe und einer absoluten Positionierung für das Element dann ist alles wie man es haben will :) Aber hier einmal eine Beispielhafte Deklaration mit Margin und Padding:Als kleine Einführung in jQuery habe ich mal eine Menü Animation vorbereitet. Hier erstmal eine Demo Page um zu zeigen was ich erreichen will:
DEMO Page Ziel ist es also ein Menü mit 2 Ebenen zu erstellen, wobei die 2. Ebene mithilfe von kleinen Animationen eingeblendet wird. Also fangen wir einmal mit der html Datei an. Das Grundgerüst muss nunmal stimmen damit man weiter arbeiten kann. Für das Menü verwende ich verschachtelte unsortierte Listen. Die erste Liste wird von einem Div umschlossen.Der Einfachheit halber belasse ich es hier bei zwei Menüpunkten mit einigen Links in der 2. Ebene. Wenn man das nun in seiner Seite öffnet sieht es wahrscheinlich ziemlich unspektakulär aus. Also sorgen wir mit folgenden CSS Zeilen dafür das die Liste horizontal angeordnet wird und die 2. Ebene verschwindet:
Das sorgt nun schonmal für die richtige Darstellung der ersten Ebene. Hintergrundfarben etc. lasse ich erstmal aussen vor. Aber wie wollen wir nun die 2. Ebene einblenden? Ich werde vorerst die Lösung per jQuery vorstellen, danach noch ein kleines Workaround, damit die Navigation auch ohne Javascript funktioniert.
Ich verwende hier die von Google gehostete jQuery Version, immer die aktuellste 1.4er die gerade released ist. Ist meiner Meinung nach eine sehr schöne Lösung, aber nicht zwingend notwendig. Ich will in dem HTML Code keine Events definieren müssen, also lasse ich all das von jQuery erledigen. Das hat auch den Vorteil das der Seitenquelltext übersichtlich gehalten wird. Hier also die Javascript Zeilen:Hm... ich hab mich gestern echt etwas gewundert als ein Freund, seinerseits auch Entwickler, mit jQuery mal so überhaupt nichts anfangen konnte. Ihm war das Framework komplett unbekannt. Er hatte dann auchb wohl in deutschen Foren rumgeschnüffelt und angeblich kaum etwas gefunden. Das halte ich zwar gerade für ein Gerücht ;) aber trotzdem wundert es mich doch sehr das er das Ding nicht kannte. Ist das ein Einzelfall oder ist jQuery doch nicht so bekannt wie ich bisher gedacht habe?
Naja, ich werde auf jeden Fall trotzdem weiterhin auf jQuery setzen, es ist meiner Meinung nach einfach so ziemlich das beste was Javascript jemals passiert ist :) Und falls es wirklich so wenige deutsche Qeullen gibt, werde ich vielleicht auch ein bisschen was dagegen tun und hier und da mal was drüber schreiben.Wer hat sich schonmal nach Variablen und Funktionen in CSS gesehnt? Verschachtelten Definitionen für Eigenschaften? Automatische Komprimierung der CSS Dateien? Erweiterungen der Selektoren?
Es gibt wirklich so einige Sachen die man sich immer mal wieder in CSS wünscht, die aber einfach fehlen oder ziemlich umständlich einzubauen sind. Wie oft hab ich mir schon verschachtelte Anweisungen gewünscht? Nur damit das ganze etwas übersichtlicher, strukturierter und auch kürzer wird.
... ist eine kleine Sammlung an Ideen die mir so in den Sinn kommen, Techniken die ich in den Weiten des Netzes finde und vielleicht auch die ein oder andere Diskussion über etwas kontroversere Themen aus dem Bereich Webdesign und Webentwicklung.
Ich möchte mich hier erstmal noch nicht so festlegen zu welchem Bereich der Blog eher tendieren wird, da ich mir da selbst absolut nicht sicher bin... Es wird auf jeden Fall von meiner zukünftigen beruflichen Karriere abhängen, ob ich nun eher in den Bereich der Entwicklung oder den des Designs tendiere.