前言

世界上有很多语言的阅读方向是不同的.

英文

中文 (以前才有竖排文字, 现在中文和英语一样了)

阿拉伯文 (Arabic)

面对不同的语言, HTML 和 CSS 就需要不同的写法. 虽然我没有做过类似的项目, 但是知识还是要有的, 正所谓 "没吃过猪肉,也见过猪跑" 嘛.

参考:

HTML 中bdo标签的dir属性和CSS的direction属性的区别与用法

snaapy.com (Arabic 网站)

Youtube – CSS how to: text direction

Easily Create Sideways Text Using the “writing-mode” CSS Property

阅读方向

有 3 个方向需要搞清楚.

1. 整体靠的方向

靠左: 英文

靠右: 阿拉伯文

靠上: 中文

靠下: 没有看过

2. 字的方向

left to rigth: 英文

right to left: 阿拉伯文

top to bottom: 中文

bottom to top: 没看过

3. 换行的方向

 

horizontal top to bottom: 英文

vertical left to right: 中文

vertical right to left: 中文

horizontal bottom to top: 没有

小总结

靠的方向, 字的方向, 换行的方向

英语: left, left to right, horizontal top to bottom

中文: left or right, top to bottom, vertical left to right or right to left

阿拉伯文: right, right to left, horizontal top to bottom

dir Attribute

Attribute dir 或 CSS direction 是用来控制 "靠" 的方向的

<p>
Lorem ipsum dolor sit amet consectetur adipisicing elit. Hic, consectetur!
</p>
<p dir="ltr">
Lorem ipsum dolor sit amet consectetur adipisicing elit. Hic, consectetur!
</p>
<style>
p {
width: 300px;
border: 1px solid black;
}
p:nth-child(1) {
direction: ltr;
}
p:nth-child(2) {
margin-top: 1rem;
direction: rtl;
}
</style>

效果

CSS direction 和 HTML dir attirbute 是一样的效果. 写其中一个就可以了, 推荐用 HTML.

rtl 是 rigth to left 缩写 (另外, ltr 就是 left to right, tb 就是 top to bottom)

它的效果是把整个段落往右边靠. 结尾的标点符号也换了位置. 但是每一个字是没有改变方向的.

bdo Attribute

bdo 是用来控制 “字的方向”.

<p>
<bdo dir="rtl"
>Lorem ipsum dolor, adipisicing elit. Eum, eius.其实, 你爱我像谁?</bdo
>
</p>

给 p 加上 bdo tag dir="rtl" (它们一套用的, 如果写 ltr 就没效果了), BDO stands for Bi-Directional Override.

注意看, 它每一个字 (every alphabet) 都反向了.

也可以用 CSS style, 但推荐使用 HTML

p {
unicode-bidi: bidi-override;
direction: rtl; /* 一定是 rtl, 一套用的 */
}

Writing-mode

它用来控制 "换行的方向"

HTML

<p>I love you? ,其实,你爱我像谁?</p>
<style>
p {
writing-mode: vertical-lr;
height: 100px;
border: 1px solid black;
}
</style>

效果

这个是 vertical left to right 的效果, 我是故意放英文的, 显然它不合适. 这也是为什么近年来越来越少用 vertical 排版了. 因为它很难表达英文和数字 (全文都用中文就可以. 但这很容易限制表达. 比如要创作一本 CSS 教程, 怎么可能不带英文呢?)

writing-mode: vertical-rl

vertical right to left 效果

writing-mode 默认值是 horizontal-tb, top to bottom 的意思 (没有 bottom to top 的哦)

总结

虽然这 3 种设定可以笛卡尔积出很多排版, 但真正会用到的只有几个而已.

英文

默认, 什么也不用 set, 它的默认值是

p {
writing-mode: horizontal-tb;
direction: ltr;
/* unicode-bidi: bidi-override; */
}

效果

中文

CSS Style

p {
writing-mode: vertical-lr;
direction: ltr;
/* unicode-bidi: bidi-override; */
}

direction: ltr 按理说应该是指 "靠左", 但由于换成 vertical 了, 所以它变成了 top, 这里需要我们自己清楚.

中文右到左

CSS Style

p {
writing-mode: vertical-rl;
direction: ltr;
/* unicode-bidi: bidi-override; */
}

阿拉伯文

不会写阿拉伯文, 改用中文代替.

p {
writing-mode: horizontal-tb;
direction: rtl;
unicode-bidi: bidi-override;
}

结束语

我自己没有做过相关项目, 这里只是写个大概, writing-mode 还有其它的设定的.

但重点是下一篇的, CSS – Logical Properties, 没有上面这些基本概念, 很难理解为什么需要 Logical Properties. 所以才写了这篇.

HTML & CSS – dir, direction, writing-mode, ltr (left to rigth), rtl (right to left)的更多相关文章

  1. css 用direction来改变元素水平方向,价值研究。

    "direction"有两个值:ltr | rtl ltr:从左往右 rtl:从右往左 默认:ltr 一起看个效果就懂了. <style> div{ direction ...

  2. css的direction属性

    在项目中有遇到一个问题,select元素中的文字需要右对齐.text-align是无效的,想了很久都没有想到办法.经过一翻搜索之后发现了https://stackoverflow.com/questi ...

  3. [转] CSS direction属性简介与实际应用 ---张鑫旭

    一.用的少并不代表没有用 至少,在我接触的这么多项目里,没有见到使用过CSS direction属性做实际开发的. 为什么呢?是因为direction长得丑吗? 虽然说direction确实其貌不扬, ...

  4. 【转载】CSS direction属性简介与实际应用

    文章转载自 张鑫旭-鑫空间-鑫生活 http://www.zhangxinxu.com/wordpress/ 原文链接:http://www.zhangxinxu.com/wordpress/?p=5 ...

  5. CSS文本方向

    前面的话 一般地,正常网页文本方向都是从上到下,从左到右.实际上,有多种设置文本方向的属性,前面已经详细介绍过text-align,HTML全局属性中有一个"dir"属性就是专门用 ...

  6. CSS 世界中的方位与顺序

    在 CSS 中,我们经常会与各种方向方位打交道. 譬如 margin.padding,它们就会有 margin-left.margin-right 或者是 padding-left.padding-r ...

  7. CSS学习笔记——视觉格式化模型 visual formatting model

    CSS 视觉格式化模型(visual formatting model)是用来处理文档并将它显示在视觉媒体上的机制.他有一套既定的规则(也就是W3C规范),规定了浏览器该怎么处理每一个盒子.以下内容翻 ...

  8. 我所了解的CSS

    我真的了解css吗? 我这样问自己. 我的思考和这几天的学习来自于看了寒冬winter大神的这篇blog:谈谈面试与面试题 .说实话, 我边看,脑袋里面边翻篇一样的过着我的那点css知识,看完了,整个 ...

  9. CSS魔法堂:不得不说的Containing Block

    前言  <CSS魔法堂:重新认识Box Model.IFC.BFC和Collapsing margins>中提到在没有floated兄弟盒子时,line box的左右边框会与所属的cont ...

  10. CSS魔法堂:重新认识Box Model、IFC、BFC和Collapsing margins

    前言   盒子模型作为CSS基础中的基础,曾一度以为掌握了IE和W3C标准下的块级盒子模型即可,但近日在学习行级盒子模型时发现原来当初是如此幼稚可笑.本文尝试全面叙述块级.行级盒子模型的特性.作为近日 ...

随机推荐

  1. 基于vsftpd搭建项目文件服务器

    vsftpd 是"very secure FTP daemon"的缩写,安全性是它的一个最大的特点.vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 ...

  2. UE4 WebUI使用指南2-通信

    前面一篇WebUI的文章讲述的WebUI插件的下载,开启,在UE中创建,加载网页等. 本文继续讲述通过WebUI,UE和网页实现双向通信的实现思路. 一点说明 由于WebUI 使用的浏览器内核并不是最 ...

  3. 引入样式在Element UI (Vue 2)和Element Plus (Vue 3)中的不同

    引入样式 Element UI (Vue 2):   import 'element-ui/lib/theme-chalk/index.css'; Element Plus (Vue 3):   im ...

  4. Java 线程池之ThreadPoolExecutor学习总结

    前提 java version "1.8.0_25" 池简述 软件开发活动中,我们经常会听到数据库连接池.内存池.线程池等各种"池"概念,这些"池&q ...

  5. 通过程序名称kill掉所有的进程

    通过程序名称kill掉所有的进程 今天差点把服务器搞崩了. 脚本的循环条件有问题,结果起了无数的nslookup,用pkill杀不掉,只能用kill一个个解决,服务器还被搞得慢得要命. 还好又黄队长, ...

  6. 搞IT的为什么不建议搞底层(操作系统、编译器、编程语言)——当你搬进你的新家之后,你会在意这个楼是谁打的地基吗?—— 要站在钱流动的地方

    文字表达引自:https://www.youtube.com/watch?v=KITqGv1qYg8 当你搬进你的新家之后,你会在意这个楼是谁打的地基吗?你猜猜那些打地基的工人赚多少钱,卖你沙发电视机 ...

  7. 超简单stable_diffusion + novelai一键部署教程

    视频教程地址: 超简单stable_diffusion + novelai一键部署教程 个人的启动命令: sudo docker run -it --rm -e NVIDIA_DISABLE_REQU ...

  8. 带有最小间隔时间的队列读取实现 —— 最小等待时间的队列 —— Python编程(续)

    接前文: 带有最小间隔时间的队列读取实现 -- 最小等待时间的队列 -- Python编程 由于上次的设计多少有些简单,这里对此丰富一下. ============================== ...

  9. Java如何防御XSS攻击?

    Q1.什么是XSS攻击? 定义很多,这里我找一个比较详细的解释 https://www.cnblogs.com/csnd/p/11807592.html Q2.为什么会有XSS攻击 也看上面的链接 Q ...

  10. 这就是为什么你学不会DDD

    本文书接上回<为了给Javaer落地DDD,我们不得不写开源组件>,欢迎关注公众号(老肖想当外语大佬),获取最新文章更新和DDD框架源码,视频和直播在B站. https://mp.weix ...