Lag enkelt sideveis tekst Bruke CSS-egenskapen skrive-modus

I dette raske tipset skal jeg vise deg hvordan du viser tekst på en nettside som går fra topp til bunn, i stedet for venstre til høyre (eller høyre til venstre). Det er to tilnærminger, en som er bedre enn den andre, så la oss hoppe inn og ta en titt!

Slik bruker du CSS "skrivemodus"

Tilnærming # 1: CSS Transforms

Hvis du er kjent med CSS, kan du tenke det instinktivt forvandle ville være den beste måten å nærme seg dette problemet, men la meg vise deg hvorfor det ikke er ideelt. Vi starter med litt innhold (noen overskrifter og et avsnitt), så søker vi en forvandle, sammen med en forvandle-opprinnelse slik at den roterer fra riktig punkt, så en kompensasjon for å holde den på skjermen:

Denne tilnærmingen fungerer når det gjelder å rotere teksten, men dokumentflyten påvirkes ikke, så h2 i vårt tilfelle sitter nå på toppen av innholdet under den. Likevel gir det oss ganske kult abstrakt resultat.

Tilnærming # 2: CSS skrivemodus

Vår andre tilnærming vil holde dokumentflyten slik at den fortsatt er tro mot dimensjonene til h2, uavhengig av tekstretningen. Vi bruker egenskapen for skrivemodus, slik:

h2 skriftlig modus: vertikal-rl; 

I dette tilfellet har vi gitt det en verdi av vertical-rl, som bruker en vertikal displayretning og en tekstretning fra høyre til venstre. Ta en titt:

Mye bedre. Du vil også merke at markøren endres også, noe som ikke skjer med CSS-transformasjon.

Blokkstrømretning

Du har kanskje lagt merke til at vi har brukt en verdi på rl (høyre til venstre) mens vi er vant til å lese latinsk skript venstre til høyre. Men det er fordi vi har endret Blokkstrømretning. hvis vi gir vår h2 en sett høydeverdi, vil du se tekstbryteren og du vil innse at i dette tilfellet trenger vi faktisk linjene å lese fra høyre på siden til venstre: 

Dette fører til at vi trenger å definere hvilke biter av alt denne justeringen må flyte og i hvilke retninger. Latinbaserte skript flyter fra topp til bunn (dette er Blokkstrømretning). Deres tekst leser fra venstre til høyre (dette er Inline Flow Direction). Og deres tegn har en grunnlinje på bunnen mens du peker oppover (dette er Tegnretning). Som dette:

Andre skript, som arabisk-basert, Han-basert (som kinesisk og japansk) og mongolsk-basert, kan vise tekst ved å bruke disse tre strømningene i en hvilken som helst kombinasjon av retninger.

Skript og skrivemodus

Skriftmodus-spesifikasjonen ble designet for å støtte alle de forskjellige skript og skrivesystemer i verden. Vi nevnte mongolsk baserte systemer, for eksempel noen de vises vertikalt, men flyter venstre til høyre.

Andre skrivemodusverdier, som du kan bruke i dag, inkluderer:

  • vertical-lr der teksten løper vertikalt, men begynner til venstre for beholderen som kjører til høyre.
  • horisontal-tb der teksten forblir horisontal, men strømmer fra topp til bunn. Dette (du har lagt merke til) er standard oppførsel.

Tekstorientering

Her er en ting å se på: et kinesisk dikt, bruk av vertical-rl skrivemodus. Innholdet er flatt rett, slik at du begynner på høyre side og leser til venstre. Men det du kanskje merker er at tegnene fremdeles er orientert oppreist. Latinske tegn vil være orientert annerledes med disse nøyaktig samme regler. Dette er bevisst:

"Unicode Standard tilordner en egenskap til hvert tegn og nettlesere kan bruke dette til å bestemme standardretningen til et gitt tegn." - W3C

Du kan videre skreddersy retningen av tegn ved å bruke tekst-orientering eiendom.

Konklusjon

CSS skrivemodus har utmerket nettleserstøtte på skrivingstidspunktet, selv om enkelte aspekter av det fortsatt er i utvikling. Alt du har sett meg gjør i denne opplæringen kan brukes i produksjon akkurat nå.

Enten du bruker dette til praktiske eller estetiske resultater, la oss se hva du har gjort i kommentarene!

nyttige lenker

  • Styling vertikale kinesiske, japanske, koreanske og mongolske tekst
  • skrivemodus på MDN