Lernen Sie Responsive Web Design in 5 Minuten

Hallo habr Ich präsentiere Ihnen die Übersetzung des Artikels "Learn Responsive Web Design in 5 Minuten" von Per.

In diesem Artikel werde ich Ihnen in 5 Minuten viele Tricks des Responsive Designs beibringen. Dies ist natürlich nicht genug für ein richtiges Studium, aber hier finden Sie eine Übersicht über die folgenden wichtigsten Methoden:

  • Relative CSS-Einheiten
  • Medienanfragen
  • Flexbox
  • Responsive Typografie

Relative CSS-Einheiten


Responsives Webdesign basiert auf relativen CSS-Einheiten. Dies sind Einheiten, die ihre Werte von einigen externen Werten erhalten. Dies ist praktisch, da beispielsweise die Bildbreite proportional zur Breite des Browserfensters skaliert werden kann.

Die gebräuchlichsten relativen Einheiten:

  • %
  • em
  • rem
  • vw
  • vh

In diesem Abschnitt beginnen wir mit dem Prozentsatz% als Maßeinheit, und im letzten Abschnitt betrachten wir die Einheit rem.

Nehmen wir an, wir haben eine sehr einfache Site wie die folgende:

Bild

Sein HTML lautet wie folgt:

<body> <h1>Welcome to my website</h1> <image src="path/to/img.png" class="myImg"> </body> 

Wie Sie dem unten stehenden GIF entnehmen können, hat unser Standardbild eine feste Breite:

Bild

Das Bild reagiert nicht besonders gut, ändern wir also die Breite auf 70%. Wir schreiben einfach folgendes:

 .myImg { width: 70%; } 

Dadurch wird die Bildbreite auf 70% der Breite des ursprünglichen Elements festgelegt, das in das Tag geschrieben wird. Da das Tag die gesamte Breite des Bildschirms abdeckt, macht das Bild immer 70% des Browserfensters selbst aus.

Hier ist das Ergebnis:

Bild

Es ist so einfach, ein ansprechendes Image zu erstellen.

Verwenden von Medienabfragen zur Verbesserung der mobilen Version der Website


Wir haben ein Problem mit unserem ansprechenden Layout - es sieht auf sehr kleinen Bildschirmen seltsam aus. Bei der Anzeige auf einem Mobiltelefon sollte sich die Breite um 70% verringern. Überzeugen Sie sich selbst:

Bild

Das Bild in diesem Fall besser aussehen zu lassen, ist nur eine Aufgabe für Medienabfragen. Sie ermöglichen es Ihnen, verschiedene Stile anzuwenden, zum Beispiel abhängig von der Breite des Bildschirms. Wir können vorschreiben, dass wir einen anderen Stil verwenden müssen, wenn die Bildschirmbreite weniger als 768px beträgt.

So erstellen wir eine Medienabfrage in CSS:

 @media (max-width: 768px) { .myImage { width: 100% } } 

Dieser CSS-Block wird nur angewendet, wenn die Bildschirmbreite weniger als 768 Pixel beträgt.

Hier ist das Ergebnis:

Bild

Wie Sie sehen, hat die Seite einen Haltepunkt, an dem das Bild breiter wird: Wenn das Browserfenster 768 Pixel breit ist, ändert sich die Bildbreite von 70% auf 100%.

Navigationsmenü mit Flexbox


Als nächstes kommt Flexbox. Sie können die Reaktionsfähigkeit einfach nicht verstehen, ohne sich zuerst mit Flexbox vertraut gemacht zu haben. Als Flexbox vor einigen Jahren eingeführt wurde, änderte es sein ansprechendes Design, da dieses Modul das Positionieren von Elementen entlang der Achse erheblich vereinfacht.

Um Flexbox zu verwenden, werden wir unsere Site etwas komplizierter machen, indem wir ein Navigationsmenü über der Kopfzeile hinzufügen. Hier ist das HTML dafür:

 <nav> <a href="#">Home</a> <a href="#">About me</a> <a href="#">Contact</a> </nav> 

Standardmäßig sieht es so aus:

Bild

Unsere Menüpunkte sind nach links verschoben, aber das ist nicht das, was wir brauchen. Wir möchten, dass sie gleichmäßig über die Breite der Seite verteilt sind.

Dazu verwandeln wir den Container einfach in eine Flexbox und wenden dann die magische Eigenschaft "Inhalt ausrichten" an.

 nav { display: flex; justify-content: space-around; } 

Lass es uns herausfinden. Display: flex verwandelt sich in eine flexible Box. Inhalt ausrichten: Durch Leerzeichen wird dem Browser mitgeteilt, dass die Elemente im flexiblen Container Leerzeichen enthalten sollen. So verteilt der Browser den verbleibenden Platz gleichmäßig um die drei Elemente.

So sieht es aus. Und wie Sie sehen, lässt sich die Site gut skalieren:

Bild

Responsive Typografie: rem


Der letzte Schritt besteht darin, unsere Typografie ansprechbar zu machen. Sie sehen, ich möchte, dass das Navigationsmenü und der Titel etwas kleiner sind, wenn die Bildschirmbreite weniger als 768px beträgt (unser Bezugspunkt, erinnerst du dich?).

Eine Möglichkeit, dies zu tun, besteht darin, die Schriftgröße in der Medienabfrage wie folgt zu verringern:

 @media (max-width: 768px) { nav { font-size: 14px; } h1 { font-size: 28px; } } 

Es war alles andere als perfekt. Eine Anwendung kann mehrere Kontrollpunkte und viele Elemente haben (h2, h3, Absätze usw.). Infolgedessen müssen wir alle Elemente in den verschiedenen Haltepunkten verfolgen. Es ist leicht zu erraten, dass dies zu Verwirrung führen wird.

Höchstwahrscheinlich werden sie sich jedoch an verschiedenen Kontrollpunkten mehr oder weniger gleich verhalten. Beispielsweise ist h1 immer mehr als ein Absatz.

Was wäre, wenn es eine Möglichkeit gäbe, ein Element einzurichten und dann die restlichen Schriftgrößen relativ zu diesem Element skalieren zu lassen?

Geben Sie rem ein!

Rem bedeutet im Grunde genommen die Schriftgröße, die Sie für Ihr Element festgelegt haben. Art der folgenden:

 html { font-size: 14px; }</source ,     rem  14px.  ,             rem. : <source lang="xml">h1 { font-size: 2rem; } nav { font-size: 1rem; } 

Und dann ändern wir einfach den Schriftgrößenwert für das Tag in unserer Medienanforderung. Dadurch wird die Schriftgröße für unsere h1- und nav-Elemente geändert.

So ändern wir den rem-Wert in einer Medienabfrage:

 @media (max-width: 768px) { html { font-size: 14px } } 

Und genau so haben wir einen Haltepunkt für alle unsere Schriftgrößen. Beachten Sie, wie sich die Schriftgröße ändert, wenn die Seite die 768-Pixel-Marke überschreitet:

Bild

Sie haben gelernt, wie Sie die Schriftgrößen, Bilder und das Navigationsmenü so anpassen, dass sie in nur 5 Minuten auf die Seitenbreite reagieren. Das ist großartig, weil Sie bereits die ersten Schritte unternommen haben, um die sehr wertvollen Fähigkeiten der Erstellung reaktionsfähiger Websites zu beherrschen.

Gute Codierung!

Source: https://habr.com/ru/post/de476974/


All Articles