suchen
HeimWeb-FrontendCSS-TutorialIst Ihr CSS logisch?

Sehen Sie sich dieses CSS-Snippet an. Was ist daran falsch?

p {
    border-top: 2px solid red;
    margin-left: 2rem;
    width: 80ch;
}

Abhängig von der Zielgruppe Ihrer Website gibt es entweder null oder drei Fehler. Bevor wir erklären, welche Fehler auftreten, stellen wir zunächst einen Kontext dar.

Eine Frage der Perspektive

Wenn Sie ein Boot betreten, werden Sie keine Begriffe wie „links“ oder „rechts“ hören. Das liegt daran, dass die linke/rechte Seite eines Bootes von der Perspektive des Betrachters abhängt. Stattdessen verwenden sie „Backbord“ und „Steuerbord“, eindeutige Begriffe, die sich immer auf die gleichen Seiten des Bootes beziehen, unabhängig von Ihrer Position oder der des Sprechers:

Is Your CSS Logical?
Bild erstellt von Pearson Scott Foresman und als gemeinfrei freigegeben. Quelle

Das gleiche Prinzip gilt für anatomische Ortsbegriffe, die es Ärzten und Tierärzten ermöglichen, die Lage von Körperteilen unabhängig von der relativen Position des Patienten oder Arztes eindeutig zu beschreiben.

CSS-Internationalisierung

Wenn Ihre Webanwendungen global eingesetzt werden, müssen Sie sie so gestalten, dass sie sich an verschiedene sprachliche Anforderungen anpassen. Beispielsweise werden Sprachen wie Englisch und Spanisch von links nach rechts geschrieben (LTR); Arabisch und Hebräisch werden von rechts nach links geschrieben (RTL); Mongolisch und traditionelles Japanisch werden von oben nach unten geschrieben.

Wenn Sie also eine CSS-Deklaration wie diese verwenden:

p {
    margin-left: 2rem;
}

Meinen Sie damit, dass Sie (1) links vom Absatz Platz hinzufügen möchten, oder (2) etwas Platz hinzufügen möchten, bevor der Inhalt beginnt? Für eine vollständig internationalisierte Benutzeroberfläche lautet die richtige Antwort immer (2).

Die logische Lösung

Sie können separate Stylesheets für die Sprachen LTR und RTL erstellen und diese bedingt laden. Es gibt sogar Tools wie das Webpack-RTL-Plugin, die automatisch ein RTL-Stylesheet basierend auf dem ursprünglichen LTR-Stylesheet generieren können.

Die beste Lösung wäre jedoch die bedingte Anwendung von CSS-Stilen wie folgt:

p {
    if writing is left-to-right:
        margin-left: 2rem;
    elseif writing is right-to-left:
        margin-right: 2rem;
    elseif writing is top-to-bottom:
        margin-top: 2rem;
    endif
}

Sie können dies in CSS tun, aber mit einer viel einfacheren Syntax:

p {
    margin-inline-start: 2rem;
}

Diese margin-inline-start-Eigenschaft ist eine logische CSS-Eigenschaft, die sich dynamisch an die Schreibrichtung des Benutzers anpasst. Logische Eigenschaften funktionieren ähnlich wie die Backbord-/Steuerbord-Analogie; Sie beschreiben das Layout auf eine Weise, die über verschiedene Schriftsysteme hinweg eindeutig ist.

Logische Eigenschaften definieren Layoutrichtungen mithilfe dieser beiden Begriffe:

  • inline: parallel zum Textfluss innerhalb einer Zeile.
  • Block: senkrecht zum Textfluss innerhalb einer Zeile.

Diese Abbildung zeigt die logischen Positionen im Vergleich zu den physischen Positionen für alle von CSS unterstützten Schreibmodi:

Is Your CSS Logical?

Unter Verwendung logischer Eigenschaften kann das am Anfang dieses Artikels gezeigte erste Beispiel wie folgt umgeschrieben werden:

p {
    border-top: 2px solid red;
    margin-left: 2rem;
    width: 80ch;
}

Das Aktualisieren eines vorhandenen CSS-Stylesheets zur Verwendung logischer Eigenschaften mag zunächst entmutigend erscheinen. Der größte Teil der Arbeit besteht jedoch darin, einfach „left“ durch „inline-start“, „right“ durch „inline-end“, „top“ durch „block-start“ und „unten“ durch „block-end“ zu ersetzen. Einige Eigenschaften erfordern eine andere Umbenennung; Beispielsweise wird der Rand-unten-links-Radius zum Rand-End-Startradius, die Höhe zur Blockgröße usw.

Der Aufwand lohnt sich, denn es handelt sich um eine zukunftssichere Lösung, die dafür sorgt, dass Ihre Website für jedermann zugänglich ist. Beispielsweise hat das EasyAdmin-Projekt, an dem ich beteiligt bin, seine Stylesheets bereits aktualisiert, um logische Eigenschaften zu verwenden.

Referenz zu logischen Eigenschaften

Hier ist eine Referenztabelle aller logischen Eigenschaften, die Ihnen bei der Aktualisierung Ihrer eigenen Projekte helfen:

Physical Property Logical Property
border-bottom border-block-end
border-bottom-color border-block-end-color
border-bottom-left-radius border-end-start-radius
border-bottom-right-radius border-end-end-radius
border-bottom-style border-block-end-style
border-bottom-width border-block-end-width
border-left border-inline-start
border-left-color border-inline-start-color
border-left-style border-inline-start-style
border-left-width border-inline-start-width
border-right border-inline-end
border-right-color border-inline-end-color
border-right-style border-inline-end-style
border-right-width border-inline-end-width
border-top border-block-start
border-top-color border-block-start-color
border-top-left-radius border-start-start-radius
border-top-right-radius border-start-end-radius
border-top-style border-block-start-style
border-top-width border-block-start-width
bottom inset-block-end
container-intrinsic-height contain-intrinsic-block-size
container-intrinsic-width contain-intrinsic-inline-size
height block-size
left inset-inline-start
margin-bottom margin-block-end
margin-left margin-inline-start
margin-right margin-inline-end
margin-top margin-block-start
max-height max-block-size
max-width max-inline-size
min-height min-block-size
min-width min-inline-size
overscroll-behavior-x overscroll-behavior-inline
overscroll-behavior-y overscroll-behavior-block
overflow-x overflow-inline
overflow-y overflow-block
padding-bottom padding-block-end
padding-left padding-inline-start
padding-right padding-inline-end
padding-top padding-block-start
right inset-inline-end
top inset-block-start
width inline-size

Erfahren Sie mehr

  • MDN: Logische CSS-Eigenschaften und -Werte

✨ Wenn Ihnen dieser oder meine anderen Artikel gefallen haben und Sie meine Arbeit unterstützen möchten, denken Sie darüber nach, mich auf GitHub zu sponsern?


Das obige ist der detaillierte Inhalt vonIst Ihr CSS logisch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Entmystifizierende Bildschirmleser: Zugrunde Formen und Best PracticesEntmystifizierende Bildschirmleser: Zugrunde Formen und Best PracticesMar 08, 2025 am 09:45 AM

Dies ist der 3. Beitrag in einer kleinen Serie, die wir in Form von Barrierefreiheit gemacht haben. Wenn Sie den zweiten Beitrag verpasst haben, lesen Sie "Verwalten des Benutzerfokus mit: Fokus-Sichtbar". In

Hinzufügen von Kastenschatten zu WordPress -Blöcken und -ElementenHinzufügen von Kastenschatten zu WordPress -Blöcken und -ElementenMar 09, 2025 pm 12:53 PM

Die CSS-Box-Shadow- und Umrisseigenschaften haben Thema gewonnen. JSON-Unterstützung in WordPress 6.1. Sei ein paar Beispiele für die Funktionsweise in realen Themen und welche Optionen wir diese Stile auf WordPress -Blöcke und Elemente anwenden müssen.

Erstellen Sie ein JavaScript -Kontaktformular mit dem Smart Forms FrameworkErstellen Sie ein JavaScript -Kontaktformular mit dem Smart Forms FrameworkMar 07, 2025 am 11:33 AM

Dieses Tutorial zeigt, dass professionelle JavaScript-Formulare mithilfe des Frameworks Smart Forms erstellt werden (Hinweis: Nicht mehr verfügbar). Während der Rahmen selbst nicht verfügbar ist, bleiben die Prinzipien und Techniken für andere Formbauer relevant.

Vergleich der 5 besten PHP -Formbauer (und 3 kostenlose Skripte)Vergleich der 5 besten PHP -Formbauer (und 3 kostenlose Skripte)Mar 04, 2025 am 10:22 AM

In diesem Artikel werden die auf dem Envato -Markt verfügbaren Top -Skripte für PHP -Formulierungen untersucht und deren Funktionen, Flexibilität und Design verglichen. Lassen Sie uns vor dem Tauchen in bestimmte Optionen verstehen, was ein PHP -Formular Builder ist und warum Sie einen verwenden würden. Eine PHP -Form

Arbeiten mit GraphQL CachingArbeiten mit GraphQL CachingMar 19, 2025 am 09:36 AM

Wenn Sie kürzlich mit GraphQL gearbeitet oder seine Vor- und Nachteile überprüft haben, haben Sie zweifellos Dinge wie "GraphQL nicht unterstützen Caching" oder gehört

Machen Sie Ihren ersten Seltsamen -Sufle -ÜbergangMachen Sie Ihren ersten Seltsamen -Sufle -ÜbergangMar 15, 2025 am 11:08 AM

Die Sufelte Transition -API bietet eine Möglichkeit, Komponenten zu beleben, wenn sie das Dokument eingeben oder verlassen, einschließlich benutzerdefinierter Svelte -Übergänge.

Show, Don ' TellShow, Don ' TellMar 16, 2025 am 11:49 AM

Wie viel Zeit damit, die Inhaltspräsentation für Ihre Websites zu entwerfen? Wenn Sie einen neuen Blog -Beitrag schreiben oder eine neue Seite erstellen, denken Sie darüber nach

Edle und coole CSS -Scrollbars: Ein SchaufensterEdle und coole CSS -Scrollbars: Ein SchaufensterMar 10, 2025 am 11:37 AM

In diesem Artikel werden wir in die Welt der Scrollbars eintauchen. Ich weiß, es klingt nicht zu glamourös, aber vertrau mir, eine gut gestaltete Seite geht Hand in Hand

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

MantisBT

MantisBT

Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

VSCode Windows 64-Bit-Download

VSCode Windows 64-Bit-Download

Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

Dreamweaver Mac

Dreamweaver Mac

Visuelle Webentwicklungstools

SublimeText3 Englische Version

SublimeText3 Englische Version

Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor