前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >小程序-实现竖排文字

小程序-实现竖排文字

作者头像
前端黑板报
发布2018-01-29 17:19:24
11K1
发布2018-01-29 17:19:24
举报
文章被收录于专栏:前端黑板报前端黑板报

最近我在做一个诗词类的小程序:《诗词屋》,已经上线。因为古文有从上到下,从右到左阅读和书写的习惯,所以我设计了一个摘录页面,如下:

整体布局就是按照古代人阅读习惯来的,有点韵味。但是我们如何实现上面那种垂直布局呢?

模板文件如下:

  1. <view class="mod-text">
  2. <text>窗前明月光</text>
  3. <text>疑是地上霜</text>
  4. </view>

那样式该如何写呢?看需求应该和方向或者书写模式有关。也就是CSS中的 writing-mode。

这个属性比较生僻,在一般业务中很少遇到,如果没有见过也不容易想到。它的语法:

  1. /* Keyword values */
  2. writing-mode: horizontal-tb;
  3. writing-mode: vertical-rl;
  4. writing-mode: vertical-lr;
  5. /* Global values */
  6. writing-mode: inherit;
  7. writing-mode: initial;
  8. writing-mode: unset;

初始值是:horizontal-tb。从字面意思我们也应该能猜到什么意思,比如:vertical-rl,就是垂直方向从上到下,水平方向从右到左。

预期表现:

从上图,我们应该能看出,使用 vertical-xx 基本可以实现我们的效果,那我们应该使用哪个呢?

先使用vertical-lr貌似这个接近我们的预期从左向右。那我们该把这个属性放在哪个元素上呢?从它的定义来看,它可以决定子元素的排列方向,那应该放到父元素上即.mod-text

wxss如下:

  1. .mod-text{
  2. writing-mod:vertical-rl;
  3. }

可是效果并不是我们期望的:

如果想不到此时的布局流向,你可以多加一些字:

如果还是别扭,你可以向右歪脖子或旋转图片:

定高是可以实现,但古诗一句的字数是不等的,貌似不够灵活。

仔细想想,我们只要使每一句的古诗占据一列不就行了吗?回忆一下在水平排列时,如何使元素占据一行?就是使元素块级化不就行了。

  1. .mod-text text{
  2. display:block;
  3. }

这就达到了预期的效果:

明天继续说一下另一种解法,如果你有好的方法,可以留言!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-01-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 前端黑板报 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档