[转载]CSS3实现文本垂直排列

最近的一个项目中要使文字垂直排列,也就是运用了CSS的writing-mode属性。

writing-mode最初时ie中支持的一个属性,后来在CSS3中增添了这一新的属性,所以在ie中和其他浏览器中的语法会有区别。

1.0 CSS3标准

writing-mode:horizontal-tb;//默认:水平方向,从上到下 writing-mode:vertical-rl; //垂直方向,从右向左 writing-mode:vertical-lr; //垂直方向,从左向右

demo

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="utf-8">
 5         <title>CSS文字垂直排列</title>
 6         <style type="text/css">
 7             div{
 8                 border: 1px solid lightblue;
 9                 padding: 5px;
10             }
11             .vertical-text{
12                 -webkit-writing-mode: vertical-rl;
13                 writing-mode: vertical-rl;
14             }
15         </style>
16     </head>
17     <body>
18         <div class="vertical-text">
19             1. 文字垂直排列 <br />
20             2. 文字垂直排列
21         </div>
22     </body>
23 </html>

2.0 IE中

由于历史的原因,IE下该属性值则显得尤为复杂:

-ms-writing-mode: lr-tb | rl-tb | tb-rl | bt-rl | tb-lr | bt-lr | lr-bt | rl-bt | lr | rl | tb
具体可以查看官方文档:

https://developer.mozilla.org/en-US/docs/Web/CSS/writing-mode/

 

3.0 一些应用

3.1 垂直居中  

通过对这个属性的使用,我们可以结合 text-align:center 实现垂直居中或者使用margin: auto。

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="utf-8">
 5         <title>CSS3 图片垂直居中</title>
 6         <style type="text/css">
 7             div{
 8                 border: 1px solid lightblue;
 9                 padding: 5px;
10                 height: 500px;
11             }
12             .vertical-img{
13                 -webkit-writing-mode: vertical-rl;
14                 -ms-writing-mode: bt-rl;
15                 writing-mode: vertical-rl;
16                 text-align: center;
17             }
18         </style>
19     </head>
20     <body>
21         <div class="vertical-img">
22              <img src="1.jpg"/>
23         </div>
24     </body>
25 </html>

3.2 文字下沉效果

我们可以设置文字的writing-mode,然后在结合text-indent来实现文字点击时的下沉效果;

 1 <!DOCTYPE html>
2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>文字下沉效果</title> 6 <style type="text/css"> 7 .btn{ 8 width: 50px; 9 height: 50px; 10 line-height: 50px; 11 color: white; 12 text-align: center; 13 font-size: 16px;; 14 display: inline-block; 15 border-radius: 50%; 16 background: gray; 17 cursor: pointer; 18 } 19 .btn:active{ 20 text-indent: 2px; 21 } 22 .vertical-text{ 23 writing-mode: tb-rl; 24 -webkit-writing-mode: vertical-rl; 25 writing-mode: vertical-rl; 26 *writing-mode: tb-rl; 27 } 28 </style> 29 </head> 30 <body> 31 <span>点击领红包</span> 32 <p class="vertical-text btn">开 </p> 33 </body> 34 </html>               
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蹦极的考拉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值