CSS3的writing-mode屬性


writing-mode這個CSS屬性以前是IE的獨有屬性,IE5.5瀏覽器就已經支持了。在很長一段時間里,FireFox, Chrome這些現代瀏覽器都不支持writing-mode,各大現代瀏覽器紛紛對writing-mode實現了更加標准的支持(主要得益於FireFox瀏覽器的積極跟進)。

1.writing-mode的瀏覽器的兼容性如下:

 

2.writing-mode的語法:

  writing-mode:horizontal-tb | vertical-rl | vertical-lr

  默認值:horizontal-tb

  取值

    horizontal-tb:水平方向自上而下的書寫方式。即 left-right-top-bottom(類似IE私有值lr-tb)

    vertical-rl:垂直方向自右而左的書寫方式。即 top-bottom-right-left(類似IE私有值tb-rl)

    vertical-lr:垂直方向自左而右的書寫方式。即 top-bottom-left-rightlr-tb:左-右,上-下。對象中的內容在水平方向上從左向右流入,后一行在前一行的下面。 所有的字形都是豎直向上的。這種布局是羅馬語系使用的(IE)tb-rl:上-下,右-左。對象中的內容在垂直方向上從上向下流入,自右向左。后一豎行在前一豎行的左面。全角字符是豎直向上的,半角字符如拉丁字母或片假名順時針旋轉90度。這種布局是東亞語系通常使用的(IE)

說明

   設置或檢索對象的內容塊固有的書寫方向。西方語言一般都是 lr-tb 的書寫方式,但是亞洲語言 lr-tb | tb-rl 的書寫方式都有。

  • 作為IE的私有屬性之一,IE5.5率先實現了 writing-mode ,后期被w3c采納成標准屬性;
  • 此屬性效果不能被累加使用。例如,父對象的此屬性值設為 tb-rl ,子對象再設置該屬性將不起作用,仍應用父對象的設置。
  • 對應的腳本特性為writingMode

3.舉例:

<html lang="zh-ch">
<head>
<meta charset="utf-8" />
<title>writing-mode</title>
<style>
   ul{
    list-style: none;
    margin:0 auto;
   }
  ul li.test{
    margin-right:20px;
  }
  .test{

     width:100px;

     height:100px;

     border:1px solid #aaa;

     margin:0 auto 20px;

     font-size: 14px;

     padding:10px;

}

  .test span{

     color:red;

     font-weight:700;

  }
 
.lr-tb{

   -webkit-writing-mode:horizontal-tb;

   writing-mode:lr-tb;

   writing-mode:horizontal-tb;

  }
  .tb-rl{

     -webkit-writing-mode:vertical-rl;

     writing-mode:tb-rl;

    writing-mode:vertical-rl;

  }
  .tb-lr{

     -webkit-writing-mode:vertical-lr;

     writing-mode:tb-rl;

     writing-mode:vertical-lr;

  }
</style>
</head>
<body>
   <div class="test lr-tb">
    本段文字將按照<span>水平從左到右</span>的書寫方向進行流動。
   </div>
  <div class="test tb-rl">

    本段文字將按照<span>垂直從右到左</span>的書寫方向進行流動。
  </div>
  <div class="test tb-lr">

    本段文字將按照<span>垂直從左到右</span>的書寫方向進行流動。
  </div>
  <ul class="tb-rl">
    <li class="test">本段文字將按照垂直從右到左的書寫方向進行流動。</li>
    <li class="test">本段文字將按照垂直從右到左的書寫方向進行流動。</li>
  </ul>
  <ul class="tb-lr">
    <li class="test">本段文字將按照垂直從左到右的書寫方向進行流動。</li>
    <li class="test">本段文字將按照垂直從左到右的書寫方向進行流動。</li>
  </ul>
</body>
</html>

結果如下圖:

但是ie7中沒有效果,看下面的例子:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Writing mode</title>
    <style>
    .vertical-mode {
    writing-mode: tb-rl;
    -webkit-writing-mode: vertical-rl;
    writing-mode: vertical-rl;
    }
    /* IE7比較弱,需要做點額外的動作 */
    .vertical-mode {
        *width: 120px;
    }
    .vertical-mode h4,
    .vertical-mode p {
        *display: inline;
        *writing-mode: tb-rl;
    }
    .vertical-mode h4 {
        *float:right;
    }
    </style>
</head>
<body>
    <h4>詠柳</h4>
    <p>碧玉妝成一樹高,<br>萬條垂下綠絲絛。<br>不知細葉誰裁出,<br>二月春風似剪刀。</p>

    <div class="vertical-mode">
        <h4>詠柳</h4>
        <p>碧玉妝成一樹高,<br>萬條垂下綠絲絛。<br>不知細葉誰裁出,<br>二月春風似剪刀。</p>
    </div>
</body>
</html>

ie7中效果正常。

如果想查看更多詳細信息,可以點擊這里:http://css.doyoe.com/,以及http://www.zhangxinxu.com/wordpress/2016/04/css-writing-mode/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM