"direction"有两个值:ltr | rtl

ltr:从左往右
rtl:从右往左

默认:ltr

一起看个效果就懂了。

<style>div{direction:rtl;}
</style>
<div>这是什么啊</div>

本想它是否可以达到float的效果,结果发现很多坑。

如下,我本想让第二个p标签跑右边去,结果不起作用。

其实也不是不起作用,因为它只是对里面的内容起作用。如果想让文字跑右边去,还得设置这个元素的宽度,因为inline-block默认宽度是靠内容得来的。

<style>body,p{margin:0;padding:0;}#box{width:200px;border:1px solid #ccc;}#box>p{display:inline-block;}#box>p:last-of-type{width:50px;background-color:red;direction:rtl;}
</style>
<div id="box"><p>左</p><p>右</p>
</div>

但我们还不能设置这个元素为100%,不然就掉下去了,除非知道左边那个元素的宽度然后通过calc函数减去这个值,不过其实还是不行的,因为inline-block也有个坑,它默认就会有几px的间距。所有说,在模拟float效果这方面direction表示力不从心。那么direction究竟能干嘛?

如果想真的了解direction能干嘛,那么看一下,下面这些direction的奇怪表现,也许就是这些奇怪的表现让direction有了活力。

一些奇怪的特征...


LI的小点跑右边去了

<style>ul>li{width:100px;direction:rtl;}
</style>
<ul><li>1111</li><li>2222</li><li>3333</li>
</ul>

还有这个

<style>div{direction:rtl;}
</style>
<div id="box">这是什么啊?</div>

这个

<style>body,p{margin:0;padding:0;}#box{width:200px;border:1px solid #ccc;direction:rtl;}#box>p{display:inline-block;}
</style>
<div id="box"><p>左</p><p>右</p>
</div>

价值可能就是文字颠倒效果了。

另外它还可以配合unicode-bidi使用。

里面有一个unicode-bidi:bidi-override属性,我们可以手动让文字颠倒。

<style>body,p{margin:0;padding:0;}#box{direction:rtl;unicode-bidi:embed;}
</style>
<div id="box">CSS</div>

除了bidi-override它还有其他的几个属性,如下:

normal:对象不打开附加的嵌入层,对于内联元素,隐式重排序跨对象边界进行工作。
embed:对象打开附加的嵌入层,<' direction '> 属性的值指定嵌入层,在对象内部进行隐式重排序。
bidi-override:严格按照 <' direction '> 属性的值重排序。忽略隐式双向运算规则。

我猜之所以会出现上面的奇怪现象就是因为它默认值是normal,对于内联元素,隐式重排序跨对象边界进行工作。这句话很关键,估计是不同当文字碰到不同格式的字就会创建一个内联元素。

转载于:https://www.cnblogs.com/pssp/p/5904139.html

css 用direction来改变元素水平方向,价值研究。相关推荐

  1. CSS之元素的水平方向的布局

    元素水平方向的布局: margin-left: border-left padding-left: width: padding-right border-right margin-right 一个元 ...

  2. css盒模型中子元素垂直方向上总高度与父元素height的关系

    我们都知道,css和模型中,子元素水平方向的7属性(margin-left, border-left, padding-left, width, padding-right, border-right ...

  3. js、css分别实现元素水平垂直居中

    js实现元素水平垂直居中.css实现元素水平垂直居中 css实现元素水平垂直居中[4行代码] js实现元素水平垂直居中[弄巧成拙] css实现元素水平垂直居中[4行代码] #div{top:50%;l ...

  4. CSS块元素水平垂直居中的实现技巧

    针对之前遇到过的一些特殊样式的实现,我今天做个总结,目的有二:一是将这些方法记录下来,以便将来需要用到时查找使用.二为将这些大神们智慧的结晶发扬光大,让广大前端程序猿们能够少走弯路.此贴为更新帖,以后 ...

  5. CSS Transform让百分比宽高布局元素水平垂直居中

    CSS Transform让百分比宽高布局元素水平垂直居中 很早以前了解过当元素是固定宽度和高度的时候,水平垂直高居中的方法可以设置margin的负值来使其居中,这个负值是元素的宽和高的一半,比如宽高 ...

  6. SAP UI5 SimpleForm 里在水平方向显示多组 Form 元素的实现方法试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 本专栏计划的文章数在 300 篇左右,到 2022年9月22日为止,目前已经更新了 133 篇,专栏完成度为 44.3%. 作者简介 Jerry W ...

  7. CSS基础(19)_绝对定位元素的水平或垂直布局

    文档流中布局 一个元素在其父元素中,水平布局之前是要满足以下等式: margin-left+border-left+padding-left+width+padding-right+border-ri ...

  8. css实现元素水平垂直居中——6种方式

    实现元素水平垂直居中的方式: 利用定位+margin:auto 利用定位+margin:负值 利用定位+transform table布局 flex布局 grid布局 利用定位+margin:auto ...

  9. CSS中让元素水平垂直居中的6种写法

    水平垂直居中 水平居中 水平垂直居中--flex布局 margin + position:absolute布局 transform + absolute absolute + margin负值 abs ...

最新文章

  1. leetcode 5. Longest Palindromic Substring 字符串中的最长回文数 逐步从O(n^2)优化至线性时间
  2. Xcode Debugging
  3. Mocha and Math 运算
  4. angularjs组件之input mask
  5. 关闭终端php就退出进程_解决windows下php-cgi进程经常自动关闭
  6. pdf在线翻译_如何将英文的PDF文档翻译成中文简体?
  7. 2013 8.20 ip地址的计算总结
  8. 集合竞价如何买入_世界上最稳健的抓涨停方法“10分钟集合竞价”选股诀窍,买入直接稳赚10个点,赚到笑...
  9. 数值分析之奇异值分解(SVD)篇
  10. python中读取txt文件、统计其中所有字母出现的频度_python——pandas练习题6-10
  11. Rust: Integers: Recreation One
  12. 定向寻宝亲子活动设计思路和实操(附2019最新教程)
  13. 关于vscode CloudMusic 插件无法登陆
  14. thinkpad指点杆(trackpoint)在WPS的word文档中失效的解决办法
  15. IT4IT的前世今生
  16. win11关闭防火墙
  17. 利用代码制作电脑中毒假象
  18. android 瀑布流 空白,Android瀑布流优化,解决Recyclerview展示大批量图片时Item自动切换、闪烁、空白等问题...
  19. 经纬度两点距离计算器_怎么确定最佳观影距离?内含懒人计算器
  20. 快速创建微信小程序,注册即认证,无需300元认证费

热门文章

  1. 关于SQL操作的一些经验
  2. ai入门视频,亲测有效
  3. 利物浦大学的office里面没有powerBI
  4. 坐标变换,空间变换的本质
  5. Centos7.x下Nginx安装及SSL配置与常用命令
  6. Java利用QRCode.jar包实现二维码编码与解码
  7. 《SolidWorks 2016中文版机械设计从入门到精通》——1.10 范例
  8. 关于javascript中的回调函数
  9. android shape的可选参数以及每个参数的含义与用法!
  10. flex制作swc文件