zoukankan      html  css  js  c++  java
  • 利用writing-mode实现元素的垂直居中

    writing-mode是CSS3的新特性之一,使用场景不是很多。这个属性主要是改变文档流的显示方式。具体的介绍参考这篇文章:http://www.zhangxinxu.com/wordpress/2016/04/css-writing-mode/,这里大致提炼下可以使用的部分。使用时需要加上浏览器的前缀。下面的例子介绍不考虑兼容性,都是在weibkit浏览器下测试。

    语法

    writing-mode可用的值有:horizontal-tb | vertical-rl | vertical-lr  针对IE有另外的属性值,这里不考虑IE,故不做介绍。 

    horizontal-tb

    文档流的方向是水平的,从上到下排列,tb是top-bottom的简写。也就是我们常用的从上到下正常的文本书写。

    vertical-lr

    文档流的方向是垂直的,从左到右排列,lr是left-right的缩写。

    vertical-rl

    文档流的方向是垂直的,从右向左排列,rl是right-left的缩写。

    使用场景

    元素的垂直居中

    元素垂直居中有很多种方法可以实现:比如说:

    1.对子元素设置定位,left:50%,top:50%,然后使用translate(-50%,-50%)对子元素平移。实现垂直居中。具体实现可参考demo。

    .box-1{position:relative;}
    .box-1 .item{position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);}
    <div class="box box-1">
        <div class="item">使用translate平移实现垂直居中</div>
    </div>

    2.使用display:table布局实现元素的垂直居中

    .box-2{display:table-cell;text-align:center;vertical-align:middle;}
    .box-2 .item{display:inline-block;}
    <div class="box box-2">
        <div class="item">使用table实现垂直居中</div>
    </div>

     3.使用writing-mode结合margin:auto 0实现垂直居中

    我们知道块状元素的水平居中可用margin:0 auto来实现,即margin-left:auto;margin-right:auto; writing-mode是改变文档流的显示方向的,所以水平居中也可以变为垂直居中。writing-mode结合margin-top:auto,margin-bottom:auto就可以实现。

    .box-3{-webkit-writing-mode:vertical-lr;}
    .box-3 .item{margin:auto 0;}
    <div class="box box-3">
        <div class="item">使用writing-mode实现垂直居中</div>
    </div>

    4. 使用writing-mode结合text-align:center实现垂直居中

     原理同第三点,text-align:center水平居中适用于inline的元素,结合writing-mode使用,就可以非常简单的让内联元素在水平方向上实现垂直居中。

    .box-4{-webkit-writing-mode:vertical-lr;text-align:center;}
    <div class="box box-4">
        <img width="100%" src="http://img12.360buyimg.com/da/jfs/t2623/13/1559560386/101307/db2d4319/5742af4cNcc412e8a.jpg">
    </div>

    文字的排列

    改变文字的排版顺序,实现一些特殊的效果。比如(唐诗等等)。

    当父元素添加-webkit-writing-mode之后,其所有的子元素都会继承该属性。经过实例验证,子元素也可以重复应用该属性。对应的脚本特性为writingMode

     

    参考链接:
    http://www.zhangxinxu.com/wordpress/2016/04/css-writing-mode/

    http://www.css88.com/book/css/properties/writing-modes/writing-mode.htm

    git地址:https://github.com/rainnaZR/Blog/tree/master/cnblogs/demos/css/writing-mode

  • 相关阅读:
    A Survey of Machine Learning Techniques Applied to Software Defined Networking (SDN): Research Issues and Challenges
    A Deep Learning Based DDoS Detection System in Software-Defined Networking (SDN)
    解决win10 USB转串口无法使用
    Feeder-Link Outage Prediction Algorithms for SDN-based High-Throughput Satellite
    Flow monitoring in Software-Defined Networks
    Refining Network Intents for Self-Driving Networks
    2020生活变化
    【转载】 图解最小堆形成-以数组方式表示
    福大软工 · 最终作业
    福大软工 · 第十二次作业
  • 原文地址:https://www.cnblogs.com/zourong/p/5513079.html
Copyright © 2011-2022 走看看