zoukankan      html  css  js  c++  java
  • 改变水平流向的 direction和竖直流向的writing-mode

    改变水平流向的 direction和竖直流向的writing-mode
      
      direction属性相信大家都很少使用,但真正使用起来却是非常实用的,接下来我们往下看:
    1.direction属性的兼容性
     
    2.direction属性值
      
    direction: ltr; /*默认值  left - to - right 从左往右*/  
    direction: rtl;
    /*right - to - left 从右往左*/
    
    

    3.我们先来看看一个简单的效果图,这是一张从左往右居中显示的两张图:

    我们想实现这两张图改变个位置,并且位置保持居中,我们有可能会想到position,float等属性,想了下这样实现比较麻烦,那么direction就轻松解决了这个问题

    <div class="demo">
         <p style="direction: rtl;">
             <img src="/images/common/m/1.jpg" alt="美女" width="128" height="96">
             <img src="/images/common/m/2.jpg" alt="美景" width="128" height="128">
         </p>
    </div>

     

     我们会发现图片位置已经调换了,而且还保持居中显示的

    再如以下一个效果,想要替换一下按钮位置,一个direction:rtl;就够了,不需要更改其他任何东西

     再者我们看下文字

    .ell { 
      240px; 
     white-space: nowrap; 
     text-overflow: ellipsis; 
     overflow: hidden; 
    } 
    <p class="ell" style="direction:ltr;">开头是我,这是中间,然后就是结束</p> 
    <p class="ell" style="direction:rtr;">开头是我,这是中间,然后就是结束</p>

    以下是呈现效果:(可以发现位置已经替换了,是不是很方便)

    4.direction 的黄金搭档 unicode-bidi

      细心的读者可能注意到了, direction 属性似乎只能改变图片或者按钮的呈现顺序,但对纯字符内容(尤其中文)好像并没有什么效果,但实际上,我们也是可以指定中文每个字符都反向呈现的,方法就是借助 direction 的搭档属性 unicode-bidi。
    兼容性比较好的几个属性值
    unicode-bidi: normal; // 默认值
    unicode-bidi: embed; 
    unicode-bidi: bidi-override;
    (1)normal:正常排列。假设设置了 direction:rtl,则图片、按钮以及问号、加号之类的字符会从右往左显示,但是中文、英文字符还是从左往右显示。
    (2)embed:embed 属性值要想起作用,只能作用在内联元素上。在通常情况下,embed属性值的表现和 normal 是一样的,导致很多人不明白 embed 到底和 normal 有什么区别。
    其实它们的区别很简单,embed 属性值的字符排序是独立内嵌的,不受外部影响。
     
    .rtl {
    direction: rtl;
    unicode-bidi: bidi-override;
    }
    .rtl > span {
    background-color: #ddd;
    }
    <p class="rtl">开头是我,<span style="unicode-bidi:normal;">这是中间</span>,然后是结束</p>
    <p class="rtl">开头是我,<span style="unicode-bidi:embed;">这是中间</span>,然后是结束</p>

    (3)bidi-override:顾名思义,bidi-override 就是“重写双向排序规则”,通常样式表现为所有的字符都按照统一的 direction 顺序排列,例如,若设置 direction:rtl,则所有字符都会从右往左反向排列,效果强烈。

    5.writing-mode 属性定义了文本在水平或垂直方向上如何排布。和direction差不多,这就不详细解释了

     

    writing-mode: horizontal-tb | vertical-rl | vertical-lr | sideways-rl | sideways-lr
    horizontal-tb:水平方向自上而下的书写方式。即 left-right-top-bottom
    vertical-rl:垂直方向自右而左的书写方式。即 top-bottom-right-left
    vertical-lr:垂直方向内内容从上到下,水平方向从左到右
    sideways-rl:内容垂直方向从上到下排列
    sideways-lr:内容垂直方向从下到上排列
  • 相关阅读:
    Android stadio 插件推荐--ok gradle
    算法:枚举法---kotlin
    Kotlin 二分法算法游戏--猜价格
    android onCreate的两个方法
    Spring 中的scope
    Intellij IDEA 2017 debug断点调试技巧与总结详解篇
    深入浅出ConcurrentHashMap1.8
    ConcurrentHashMap JDK1.8
    synchronized修饰普通方法和静态方法
    Java多线程系列--CopyOnWriteArraySet
  • 原文地址:https://www.cnblogs.com/alex-xxc/p/14546193.html
Copyright © 2011-2022 走看看