InDesign-Boxen sind so einfach wie klicken und ziehen. Mit den Photoshop-Ebenen können Maler Pixel an beliebigen Stellen einfärben. Aber Layout mit HTML und CSS ist ein Spiel des Anstupsens und Kaskadierens.
Es passiert jeden Tag: Photoshop-artige Art Directors motzen Designs, verfeinern ihre Abstände, wählen sorgfältig geeignete Schriften und Farben aus. Sie geben ihre Arbeit an einen eifrigen HTML-Entwickler weiter, der ankündigt, dass das Design wahrscheinlich Tage dauern wird, um zu funktionierendem HTML / CSS zu werden. Schlimmer noch, sie nehmen Änderungen vor, um unterschiedliche Bildschirmgrößen zu berücksichtigen. Timing ist ein Geheimnis für beide Parteien. Wird der Entwickler eine Stunde oder eine Woche benötigen, um seine PSD in funktionierendes HTML / CSS umzuwandeln?
Die Grundlagen des Weblayouts - das Mögliche, das Praktische, die Möglichkeiten - sind leicht zu verstehen. Wie das Design selbst wird das Verständnis der Prinzipien jedem Designer helfen, bessere Entwürfe zu erstellen und den Prozess des Aufbaus einer Website zu beschleunigen.
Alles auf einer Webseite, von Absätzen über Bilder bis zu Links zu fettem Text, befindet sich in unsichtbaren Kästchen. Diese Boxen gibt es in zwei Varianten: Block und Inline. Der Unterschied zwischen Inline und Block liegt in ihrem Verhalten.
Blockelemente werden übereinander gestapelt. Wenn nicht anders angegeben, nehmen sie so viel horizontalen Raum wie möglich ein und schieben alles um sie herum nach oben oder nach unten. Für das Design sind Blockelemente das primäre Layout-Werkzeug.
Inline-Elemente basieren auf Textformatierung. Sie unterbrechen den Textfluss nicht, und ihre Dimensionen erweitern sich, um zu ihrem Inhalt zu passen. Ein Inline-Element zu teilen, um eine Breite von 200 Pixeln beizubehalten, funktioniert nicht. Es mit Text füllen wird.
Standardmäßig ist jedes Element in der ist entweder ein Inline- oder ein Blockelement. Designer können ihre Natur mit ein wenig CSS ändern - sagen wir, indem wir einen Stapel von Listenelementen (native Blöcke) in eine Reihe oder eine Reihe horizontaler Links (nativ inline) in einen vertikalen Stapel verwandeln. Das bedeutet, dass jedes sichtbare Element für das Layout verwendet werden kann. Ob dies der Fall ist, hängt vom jeweiligen Layout ab.
Native Blockelemente umfassen:
- Absätze
- Listen
- Elemente in einer Liste
- Überschriften
-
- Tabellen
- Block Zitate
- Organisatoren in HTML5
,
,
,
, und
- Der Körper selbst
Inline-Elemente umfassen:
- Anker (Hyperlinks)
- Fett gedruckt
und
- Kursiv
und
- Bilder
- Zitate
- Styling eingeben
- Formularbeschriftungen
- Wie du willst
Allgemeine Tags, die weder blockiert noch inline sind:
- Der Titel des Dokuments
- Meta-Tags
- Skript-Tags
- Link-Tags
Auf den ersten Blick erscheint die Anpassung an die Lego-ähnliche Mentalität in einem Medium, das Gradienten, Kurven und elastische Layouts zulässt, nicht intuitiv. Aber die Idee von allem als Baustein ist entscheidend, um zu verstehen, wo Inhalt und Präsentation sich treffen.
Richtlinie: Jedes Paar von Tags (oder eigenständige Tags wie
) Im Körper steht eine Box.
Blöcke für das Layout verwenden
Löschen Sie einen Textrahmen in InDesign, und das angrenzende Foto wird nicht verschoben, da sich die Platzierung nicht auf die andere bezieht. Wenden Sie Kurven auf eine Photoshop-Ebene an, und keine andere Ebene wird geändert, da sich die Kurven jeweils auf eine Ebene auswirken. Löschen Sie jedoch ein Element in HTML, und alles nach diesem Element wird sich wahrscheinlich ändern. Blöcke in einem Webseitenstapel in der oberen linken Ecke ihres Containers, z
oder ein anderer Block.
Das gesamte Weblayout wird mit Blockelementen ausgeführt. Designer verwenden meistens Blöcke Elemente, um rechteckige Bereiche zu erstellen, in die alle Inhalte passen. Es gibt nur vier Regeln: - Gesamtbreite: Der Raum, den ein Element belegt und beeinflusst.
- Float: Ändern der Tendenz von Blöcken zum Stapeln.
- Clear: Stapel neu erstellen.
- Nest: Elemente liegen ineinander oder nicht. Es gibt keine halbwegs.
Jede Regel hat Vorbehalte ... aber keine werden benötigt, um eine Seite zusammenzustellen.
(CSS-Experten werden erkennen, dass diese Regeln für Elemente mit relativer Positionierung gelten. Absolute Positionierung ist ein anderes - und weniger verbreitetes - Tier.)
1. Gesamtbreite = Box & Puffer
Die Gesamtbreite gibt an, wie viel horizontaler Speicherplatz ein Block belegt. Dies umfasst den Rand, den Rahmen und die Füllung des Blocks. Im Print-Sprachgebrauch sind Rand und Polsterung Arten von Rinnen. Aber im Gegensatz zu traditionellem Negativraum, der durch Auseinanderdrücken von Boxen entsteht, sind Padding und Rand Teil einer Box. Sie sind wie Kerning für Layoutelemente.
Die Berechnung von Breite, Padding und Rand ist oft der größte Ärger für Designer, aber die restlichen Regeln sind etwas einfacher.
2. Floating klopft Blöcke vom Stapel
Floating drückt ein Blockelement nach links oder rechts und entfernt es aus dem natürlichen Stapel. Wenn ein Block schwebt, macht er Platz für alles, was sich darunter auf der anderen Seite erhebt.
Spalten entstehen, wenn eine Reihe von Blöcken nebeneinander schwebt.
3. Löschen: Entwickler können eine Seite sowohl horizontal als auch vertikal organisieren
Ein ungünstiger Nebeneffekt des Schwebens ist seine Auswirkung auf den Behälter. Ein Container wird vertikal wachsen, um zu seinem Inhalt zu passen - außer denen, die schwimmen. Wenn alles schwebt, hat die Box keine Höhe. Alles darunter taucht unter den schwimmenden Gegenständen auf. Chaos entsteht.
Das Löschen setzt die natürliche Stapelneigung der Blöcke fort. In der Tat erinnert es einen Container, dass es etwas zu enthalten hat. Ohne zu löschen, können Designer eine Seite nicht horizontal und vertikal organisieren.
4. Verschachteln
Die Verschachtelung ist einfach: Jeder Block muss vollständig in einem anderen Block liegen. Kein Block darf sich jemals außerhalb seiner Grenzen ohne ernsthafte Konsequenzen erstrecken, und keine zwei Blöcke können sich teilweise überlappen.
Spalten müssen passen oder sonst
Hier müssen Designer ein wenig rechnen. Um die Spalten richtig anzupassen, muss die Summe ihrer Gesamtbreiten kleiner als die Breite ihres Containers sein.
Spalten sind eine Reihe von Blockelementen, die nach links oder bei seltenen Gelegenheiten nach rechts drücken. Wenn diese Spalten zu breit für ihren Container sind, wird die letzte Spalte ohne spezielle Techniken unter die anderen fallen.
Ein einfaches Layout könnte drei verwenden Elemente zum Erstellen eines zweispaltigen Layouts:
…
Oben verwendet das linke Beispiel dieses CSS:
#container { width: 1000px; }
#main-content { width: 600px; padding: 20px; }
#sidebar { width: 340px; padding: 10px; }
Der Container ist 1000 Pixel breit. Der Main-Content-Block ist 640 Pixel breit - 600 Breite + 20 Pixel Polsterung auf jeder Seite. Der Sidebar-Block ist 360 Pixel breit - 340 Breite + 10 Pixel Polsterung auf jeder Seite. (600 + 20 + 20) + (340 + 10 + 10) = 1000. Eine perfekte Passform.
Im rechten Beispiel ist jedoch etwas zu weit. Es könnte entweder das Auffüllen der Spalte oder die Spaltenbreiten selbst sein. Vielleicht ist der Behälter zu eng. Das Ändern eines dieser Faktoren, um den Container breiter als die Spalten zu machen, würde das Problem lösen.
Ausnahmen erfordern mehr Code; Uniformität erfordert weniger
Im Gegensatz zu herkömmlichen visuellen Medien - z. B. Bildhauerei oder Grafikdesign - erfordert das Schreiben von Code ein starkes geistiges Bild davon, was der Code tun wird.
Einige Aspekte der Gestaltung durch Code liegen auf der Hand. Einfache Designs verwenden oft weniger Code als komplexe Designs. Wenn die Lösung eines Designproblems erfordert, dass jedes Widget, jede Spalte und jedes Stück Text eine eigene Hintergrundfarbe hat, sei es so. Es erfordert nur mehr Code.
- Wenn ein Textteil größer als andere ist, benötigt er einen eigenen Eintrag in der CSS-Datei.
- Wenn zwei Spalten unterschiedliche Breiten haben, sollte die CSS-Datei jeweils Breitenangaben enthalten.
- Wenn ein Design drei Arten von Aufzählungszeichen erfordert, benötigt das CSS drei Definitionen.
Eine weniger offensichtliche Tatsache von Design-by-Code ist, dass es weniger offensichtlich ist. Vorstellungskraft und Erfahrung sind besonders bei der Programmierung von Seitenlayouts erforderlich, bei denen das Ändern des Spaltenrandes Auswirkungen auf seine Nachbarn hat. Beim Übergang von Print- zu Web-Design stolpert das Unvermögen, sich das Ergebnis vorzustellen, auf neue Entwickler.
Nicht das color:blue
ist schwer zu fassen. Aber es ist eine Sache zu schreiben div { background: url(photo.jpg) top left no-repeat; }
und ein anderes, um ein Foto im Kontext der Seite zu sehen.
Zum Glück erleichtern einige Analogien die Lernkurve.
- Stellen Sie sich vor, dass CSS vollständig mit Absatzstilen arbeitet. Das Ändern eines Artikels im laufenden Betrieb ist umständlich. CSS funktioniert am besten, wenn es auf eine ganze Klassifikation von Bildern oder Wörtern angewendet wird (daher das Attribut "class" in HTML).
- Stellen Sie sich vor, Sie sehen jeweils ein Viertel der Seite. Zu jeder Zeit sehen Benutzer nur einen Teil einer Webseite, da die meisten Webseiten größer sind als das durchschnittliche Browserfenster. Endbenutzer sehen nur ein Stück nach dem anderen. Die "Faltung" tritt an allen vier Seiten des Browsers auf.
- Fragen Sie sich: "Was wäre, wenn sich jedes Element in der Quantität verdoppeln würde?" Gute Designs präsentieren den Inhalt gut beim Start. Große Webdesigns tun dies weiterhin. Artikelvorlagen müssen Artikel unterschiedlicher Länge aufnehmen. Content-Manager entfernen alten Text oder fügen neue Fotos hinzu, die nicht den geplanten Proportionen entsprechen. Die Kunden entscheiden, dass sie ihre fünf neuesten Tweets auf der Startseite möchten. Niemand weiß, wie sich eine Site verändern kann, aber eine Planung für unterschiedliche Mengen von allem ist eine gute Vorsichtsmaßnahme.
Vorwärts gehen
Der Vorteil des Verständnisses von Weblayouts besteht darin, zu wissen, was möglich ist, und häufige Fehler und schnellere Entwicklungszeiten zu vermeiden. Um jedoch mit HTML / CSS zu arbeiten, ist ein Umdenken erforderlich. CSS-Systeme wie das 960 Grid System Minimieren Sie die erforderliche technische Arbeit und erleichtern Sie den Übergang von der reinen Pixelarbeit zum Code. Aber wie jede Sprache zu lernen, ist das beste Werkzeug Persistenz.
Was bereitet Ihnen den größten Ärger, wenn Sie Mockups in HTML und CSS umwandeln? Teilen Sie Ihre Erfahrungen und Lösungen in den Kommentaren unten.