CSS-reverse eine ganze website (Spiegel-Effekt)
Ich bin, building a multi-lingual website. Einige Sprachen (wie Hebräisch) Lesen von rechts nach Links. Neben dem eigentlichen text, die Benutzer sind gewohnt, die navigation und andere visuelle Hinweise, rückgängig gemacht.
Zum Beispiel "Hauptmenü" auf der Oberseite wäre auf der rechten Seite ausgerichtet. "zurück" - Taste, Punkt-logo rechts oben statt Links oben, etc.
One-Lösung ist natürlich eine ganze neue design, aber das würde bedeuten, ich müsste zu pflegen, 2 Vorlagen. Nicht ideal.
Ich dachte nur, wäre es möglich, spiegeln das gesamte design in CSS? Wie in einen Spiegel zu schauen?
Bin ich auch geöffnet, um zu besseren Lösungen, wenn dies scheint zu weit hergeholt.
Eingesetzte Technologien: PHP, Yii, Weniger.css, jQuery
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist es möglich, spiegeln Sie die gesamte Website, genau so, wie Sie beschreiben, aber mit ein paar Zeilen CSS siehe hier: http://jsbin.com/aduqeq/5/edit
CSS:
Gibt es ein paar Nachteile dieses Ansatzes ist jedoch:
1), Während es funktioniert gut in Firefox + Chrome nur eine Art von arbeiten in IE8+ (der text sieht sehr seltsam für mich in IE), die Unterstützung erwarten, um ein bisschen lückenhaft (dies ist ein neues CSS3 feature)
2) Es gibt offensichtliche semantische Nachteile hier
3) Einige Leute scheinen zu haben eine Sache über vendor-Präfixe
Insgesamt mit RTL auf den Körper und mit einem anderen stylesheet könnte eine viel bessere alternative hier, dachte sogar, dass es mehr umständlich für Sie, das Ende user eine bessere Erfahrung (leider sind die schnellen Lösungen, wir wollen nicht immer verfügbar)
p
. Vorausgesetzt, dass Sie nie stackp
tags, es würde funktionieren wie ein Charme. (Sehr hacky obwohl 😉 )Viele Websites bestehen aus einer Menüleiste und einem content-Bereich. Diese sind in der Regel die Schwerpunkte spiegeln. Sollte einfach sein, mit 3 Zeilen CSS :
Diese gleichen CSS-code kann leicht angepasst werden, um mit anderen Bereichen, die verschoben werden sollen. Es gibt wirklich keine Notwendigkeit, Sie zu pflegen, 2 Sätze von Vorlagen, es sei denn, Sie hardcoded Koordinaten (das war eine schlechte Idee auf jeden Fall).
Natürlich, stellen Sie sicher, dass
<html dir="rtl">
Dieser umkehren wird alles auf der Seite von rechts nach Links. Müssen Sie dies für jedes element auf Ihrer Seite.
Können Sie versuchen:
Aber das würde Ihnen nur ein Ausgangspunkt für den start von...
Hoffe, es hilft.
Können Sie spiegeln die gesamte website mit Seandunwoody seine Antwort aber, die umkehren würde den text und die Symbole und Bilder, und wie gut.
Vorausgesetzt, Sie platzieren Sie Ihre Inhalte in
<p>
und<h1>
2-und 3-tags, die Sie nicht in jedem anderen (also keine<p><p></p></p>
), können Sie die css wie dieses:Was es tut, ist im Grunde die Doppel-Spiegel-trick, es spiegelt die komplette website und dann spiegelt es den kleinen Absatz und die Titel, die enthalten Ihre Texte und Bilder zurück, um die ursprüngliche Ausrichtung, aber immer noch in der position des umgekehrten website.
Hacky, aber es funktioniert (nicht so schön, auf IE aber).
*Sie müssen auch hinzufügen, die
dir='rtl'
zu denhtml
oderbody
tag um sicherzustellen, dass der text gerade steht nach rechts und Hebräisch ist Umgekehrt (Englisch Charaktere bleiben Links nach rechts, sondern allign rechts).Die Entwickler von MediaWiki, die software, die hinter Wikipedia in Hunderte von Sprachen, entwickelte ein tool namens CSSJanus, die klug flip CSS on-the-fly für rechts-nach-Links-Sprachen:
https://github.com/cssjanus
Dies ist erfolgreich für Wikipedia in rechts-nach-Links-Sprachen und als Ergebnis Sie erfordern sehr wenig doppelte Pflege von CSS.
Es ist ein großer Magic-Tool namens rtlcss
TLDR;
vor langer Zeit, bekam ich Weg mit dabei die folgenden:
1. wenn ein element hat eine
direction:rtl
-> entfernen Sie es2. wenn ein element keine
direction:rtl
-> hinzufügenin den meisten Fällen, fügen
direction:rtl
zubody
4. wenn das element hat
align:right/left' -> switch left/right
- Marge-rechts/Links` -> switch-Links/rechts5. if element has
Grenzen, die nicht verarbeitet werden:
1. Statisch platzierte Elemente können nicht platziert werden, rechts
2. Relative Platzierungen gebracht werden darf, Recht
3. Die Styles in der HTML sollte gesorgt werden (falls vorhanden, empfehlen, den Schritt in die CSS)
seien Sie vorsichtig, wenn Sie planen, mit Finden & Ersetzen als
right
&left
finden Sie in geheimnisvolle Orte.z.B.
.copyright { ... }
werden kann.copyleft { ... }
Suche heute (Jan '18) fand ich diese tolle tool, dass all die oben aufgeführten Punkte für Sie:
Werfen Sie einen Blick auf RTLCSS Website
Habe ich es als command line, da musste ich auf RTL eine Bibliothek CSS hatte ich mal, aber es kann gebündelt werden, die in Ihren build-Schritte.