HTML & CSS – dir, direction, writing-mode, ltr (left to rigth), rtl (right to left)
前言
世界上有很多语言的阅读方向是不同的.
英文

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

阿拉伯文 (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)的更多相关文章
- css 用direction来改变元素水平方向,价值研究。
"direction"有两个值:ltr | rtl ltr:从左往右 rtl:从右往左 默认:ltr 一起看个效果就懂了. <style> div{ direction ...
- css的direction属性
在项目中有遇到一个问题,select元素中的文字需要右对齐.text-align是无效的,想了很久都没有想到办法.经过一翻搜索之后发现了https://stackoverflow.com/questi ...
- [转] CSS direction属性简介与实际应用 ---张鑫旭
一.用的少并不代表没有用 至少,在我接触的这么多项目里,没有见到使用过CSS direction属性做实际开发的. 为什么呢?是因为direction长得丑吗? 虽然说direction确实其貌不扬, ...
- 【转载】CSS direction属性简介与实际应用
文章转载自 张鑫旭-鑫空间-鑫生活 http://www.zhangxinxu.com/wordpress/ 原文链接:http://www.zhangxinxu.com/wordpress/?p=5 ...
- CSS文本方向
前面的话 一般地,正常网页文本方向都是从上到下,从左到右.实际上,有多种设置文本方向的属性,前面已经详细介绍过text-align,HTML全局属性中有一个"dir"属性就是专门用 ...
- CSS 世界中的方位与顺序
在 CSS 中,我们经常会与各种方向方位打交道. 譬如 margin.padding,它们就会有 margin-left.margin-right 或者是 padding-left.padding-r ...
- CSS学习笔记——视觉格式化模型 visual formatting model
CSS 视觉格式化模型(visual formatting model)是用来处理文档并将它显示在视觉媒体上的机制.他有一套既定的规则(也就是W3C规范),规定了浏览器该怎么处理每一个盒子.以下内容翻 ...
- 我所了解的CSS
我真的了解css吗? 我这样问自己. 我的思考和这几天的学习来自于看了寒冬winter大神的这篇blog:谈谈面试与面试题 .说实话, 我边看,脑袋里面边翻篇一样的过着我的那点css知识,看完了,整个 ...
- CSS魔法堂:不得不说的Containing Block
前言 <CSS魔法堂:重新认识Box Model.IFC.BFC和Collapsing margins>中提到在没有floated兄弟盒子时,line box的左右边框会与所属的cont ...
- CSS魔法堂:重新认识Box Model、IFC、BFC和Collapsing margins
前言 盒子模型作为CSS基础中的基础,曾一度以为掌握了IE和W3C标准下的块级盒子模型即可,但近日在学习行级盒子模型时发现原来当初是如此幼稚可笑.本文尝试全面叙述块级.行级盒子模型的特性.作为近日 ...
随机推荐
- 解决方案 | 一个VBA代码里面非常隐蔽的错误:运行时错误“5”:无效的过程调用或参数
1 代码部分 代码功能:实现使用sumatra打开指定pdf指定页码 代码: Sub OpenPDFatPage() Dim PDFFile As String Dim PageNumber As L ...
- Python win11 安装lxml 失败
如果你有一个项目执行了requirements后,一直提示lxml失败,解决步骤如下 1.尝试升级pip python.exe -m pip install --upgrade pip 2.尝试下载包 ...
- 开启GitLab的邮件通知功能以及一些外观配置
前言 维护GitLab的同事离职了 刚好又有新实习生需要申请账号 只能我来出手了 其实之前安装了 GitLab 之后一直还是用得比较粗糙的 属于是勉强能用的水平,有些配置都还没改好 这次把邮件功能.域 ...
- .NET科普:.NET简史、.NET Standard以及C#和.NET Framework之间的关系
最近在不少自媒体上看到有关.NET与C#的资讯与评价,感觉大家对.NET与C#还是不太了解,尤其是对2016年6月发布的跨平台.NET Core 1.0,更是知之甚少.在考虑一番之后,还是决定写点东西 ...
- Day 7 - 哈希与 KMP
字符串哈希 定义 我们定义一个把字符串映射到整数的函数 \(f\),这个 \(f\) 称为是 \(\text{Hash}\) 函数. 我们希望这个函数 \(f\) 可以方便地帮我们判断两个字符串是否相 ...
- XXL-JOB分片执行分布式任务
XXL-JOB相对于springtask来说优点之一就是分布式执行任务,可以在调度中心为执行器分发任务,实现分布式. 分片广播任务即当一个微服务形成集群的时候,任务会完整的下发给每一个执行器.而不像其 ...
- 对精确率(P)、召回率(R)、F1值的理解以及对应的实现
对精确率.召回率.F1值的理解 算法理解 在机器学习中,P.R和F1值在各种评测中很常见,那么到底什么是P.R.F1值呢,怎么理解呢,困扰了很多人,下面给我对P.R.F1值的理解, 首先,我们先看一个 ...
- 亚马逊 vpc 子网 路由表 互联网网关 弹性ip
创建vpc,子网,路由表,互联网网关,弹性ip等网络资源 vpc和子网 创建互联网网关 附加到vpc 创建路由表 路由表编辑路由 此路由通过这个网关出去 编辑子网关联 保存关联 有关云主机 创建属于那 ...
- 我用Awesome-Graphs看论文:解读GraphBolt
GraphBolt论文:<GraphBolt: Dependency-Driven Synchronous Processing of Streaming Graphs> 前面通过文章&l ...
- SLF4J2.0.x与Logback1.3.x的绑定变动还是很大的,不要乱点鸳鸯谱
开心一刻 今天跟我姐聊天 我:我喜欢上了我们公司的一个女同事,她好漂亮,我心动了,怎么办 姐:喜欢一个女孩子不能只看她的外表 我:我知道,还要看她的内在嘛 姐:你想多了,还要看看自己的外表 背景介绍 ...