0

0

如何在Div中垂直排版文本(从下到上)

DDD

DDD

发布时间:2025-11-23 11:03:23

|

507人浏览过

|

来源于php中文网

原创

如何在Div中垂直排版文本(从下到上)

本文详细介绍了在网页设计中实现文本从底部到顶部垂直排版的两种主要css技术。首先,探讨了利用`transform`属性进行精确旋转和定位的方法,包括`rotate(-90deg)`和`translatex(-100%)`的组合应用。其次,介绍了结合`writing-mode: vertical-rl`和`scale: -1`来实现垂直翻转文本流的方案。教程提供了详细的代码示例,并分析了两种方法的优缺点及适用场景,旨在帮助开发者根据具体需求选择最合适的实现方式。

在现代网页布局中,有时我们需要实现文本的特殊排版效果,例如将文本垂直显示,并且是从底部向顶部阅读。这在侧边栏、标签页或某些创意设计中非常常见。本文将深入探讨两种主要的CSS实现方法,帮助您在不同场景下灵活应对。

方法一:使用 CSS transform 属性

transform 属性是CSS中用于对元素进行2D或3D转换的强大工具。通过结合 rotate() 和 translateX(),我们可以精确地控制文本的旋转和位置。

实现原理

  1. 旋转文本: 使用 rotate(-90deg) 将文本逆时针旋转90度,使其从水平方向变为垂直方向。此时,文本的起始点(通常是左上角)会保持在原位,导致文本可能超出其容器的顶部边界。
  2. 调整位置: 旋转后,文本的视觉起点会发生变化。为了将其调整回容器内部并使其从底部开始显示,我们需要使用 translateX(-100%)。translateX(-100%) 会将元素沿着其自身X轴(旋转后的X轴)向左移动其宽度的100%,从而将文本的底部对齐到容器的底部。
  3. 设置转换原点: transform-origin: 0 0; 属性定义了转换的起点。将其设置为 0 0(即元素的左上角),可以确保旋转和位移操作从这个固定点开始,有助于更直观地控制元素位置。
  4. 显示模式: 为了让 transform 更好地作用于文本,通常需要将包含文本的元素设置为 display: inline-block; 或 block;。

代码示例

假设我们有一个高度占满父容器的 div,希望将其中的文本垂直从底部到顶部显示。

HTML 结构:

HELLO WORLD!

CSS 样式:

html, body {
  height: 100%;
  margin: 0; /* 移除默认外边距 */
}

.container {
  height: 100%;
  font-size: 40px;
  background-color: #cccccc;
  display: inline-block; /* 或 block */
  position: relative; /* 如果需要更复杂的定位 */
  overflow: hidden; /* 防止旋转后的文本溢出 */
}

.rotated-text-transform {
  transform: rotate(-90deg) translateX(-100%);
  transform-origin: 0 0;
  display: inline-block; /* 确保transform生效 */
  white-space: nowrap; /* 防止文本在旋转前换行 */
  /* max-width: 100vh; */ /* 针对非常长的文本,可能需要限制最大宽度 */
}

注意事项

  • 溢出处理: 使用 transform 旋转的元素在视觉上可能超出其原始布局空间,但其在文档流中仍占据原始空间。这意味着如果文本过长,可能会在视觉上溢出父容器。需要结合 overflow: hidden; 在父容器上进行裁剪,或通过计算调整 translateX 的值,或者使用 max-width 限制旋转后的文本宽度。
  • 文本选择: 文本选择行为通常保持正常,但由于元素被旋转,鼠标选择的视觉反馈可能与文本实际的排版方向不符。
  • 响应式布局 在响应式布局中,容器的宽度不确定时,translateX 的百分比值通常能很好地适应。

方法二:结合 writing-mode 与 scale 属性

writing-mode 属性是CSS中专门用于定义文本流方向的属性,它提供了更语义化的垂直文本排版方式。结合 scale 属性,我们可以实现从底部到顶部的效果。

建站之星(sitestar)网站建设系统2.7
建站之星(sitestar)网站建设系统2.7

SiteStar V2.7版功能说明:增加和改善功能1、站点基本设置中增加地址栏图标上传。2、调整文章、产品按后台顺序值从大到小进行排序显示。3、新增留言模块自定义留言项功能,方便各种网站留言表单需求。4、下载模块中,下载类型新增外部链接方式。5、友情链接、在线客服模块,新增排序字段,可调整显示顺序。6、新增走马灯按后台顺序值从大到小进行排序显示。7、增强公告模块设置滚动速度。8、产品列表显示方式

下载

实现原理

  1. 垂直书写模式: writing-mode: vertical-rl; 将文本流设置为垂直方向,从上到下书写,然后从右到左排列列。这已经实现了垂直文本,但方向是从上到下。
  2. 翻转元素: 为了将“从上到下”变为“从下到上”,我们可以使用 transform: scale(-1);。scale(-1) 会同时将元素在水平和垂直方向上翻转,从而有效地反转了 writing-mode 的方向。

代码示例

HTML 结构:

HELLO WORLD!

CSS 样式:

html, body {
  height: 100%;
  margin: 0;
}

.container {
  height: 100%;
  font-size: 40px;
  background-color: #cccccc;
  display: inline-block; /* 或 block */
  position: relative;
  /* overflow: hidden; */ /* 通常不需要,因为writing-mode更自然地处理布局 */
}

.rotated-text-writing-mode {
  writing-mode: vertical-rl; /* 垂直书写,从右到左的列 */
  transform: scale(-1); /* 同时水平和垂直翻转 */
  display: inline-block; /* 确保writing-mode生效 */
  /* transform-origin: center center; */ /* scale默认中心翻转,可省略 */
}

注意事项

  • 文本选择: 使用 scale(-1) 翻转的文本在选择时可能会出现视觉上的混乱,因为光标和选择区域会按照翻转后的元素进行显示,这可能不是用户预期的行为。
  • 语义化: writing-mode 是更语义化的垂直文本解决方案,它会改变文本的块级和行级方向,使其在布局上更符合垂直文本的特性。
  • 溢出处理: 相较于纯 transform 方式,writing-mode 在处理文本溢出时通常表现更自然,因为它改变了文本的流向,而不是简单地旋转元素。

总结与选择建议

两种方法都能实现从底部到顶部的垂直文本效果,但各有优劣:

  • transform 方案:
    • 优点: 对文本的旋转和定位控制非常精确,适用于需要微调位置的场景。文本选择行为相对正常。
    • 缺点: 溢出处理相对复杂,需要手动调整 translateX 或父容器的 overflow。在响应式布局中可能需要额外的调整。
  • writing-mode + scale 方案:
    • 优点: 更语义化地处理垂直文本,布局表现通常更自然,对溢出处理更友好。
    • 缺点: scale(-1) 会导致文本选择行为异常,用户体验可能受影响。如果文本需要交互(如复制、高亮),此方法可能不适用。

如何选择:

  • 如果您需要精确控制文本位置,并且对文本选择体验有较高要求,同时能接受手动处理溢出的复杂性,请选择transform 方案
  • 如果您的主要目标是快速实现垂直文本,对文本选择的交互要求不高(例如,仅用于展示性标题),并且希望布局处理更自然,那么writing-mode 结合 scale 是一个更简洁的选择。

在实际开发中,建议根据项目的具体需求和用户交互预期来权衡选择最合适的实现方式。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
overflow什么意思
overflow什么意思

overflow是一个用于控制元素溢出内容的属性,当元素的内容超出其指定的尺寸时,overflow属性可以决定如何处理这些溢出的内容。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1756

2024.08.15

Golang 网络安全与加密实战
Golang 网络安全与加密实战

本专题系统讲解 Golang 在网络安全与加密技术中的应用,包括对称加密与非对称加密(AES、RSA)、哈希与数字签名、JWT身份认证、SSL/TLS 安全通信、常见网络攻击防范(如SQL注入、XSS、CSRF)及其防护措施。通过实战案例,帮助学习者掌握 如何使用 Go 语言保障网络通信的安全性,保护用户数据与隐私。

0

2026.01.29

俄罗斯Yandex引擎入口
俄罗斯Yandex引擎入口

2026年俄罗斯Yandex搜索引擎最新入口汇总,涵盖免登录、多语言支持、无广告视频播放及本地化服务等核心功能。阅读专题下面的文章了解更多详细内容。

415

2026.01.28

包子漫画在线官方入口大全
包子漫画在线官方入口大全

本合集汇总了包子漫画2026最新官方在线观看入口,涵盖备用域名、正版无广告链接及多端适配地址,助你畅享12700+高清漫画资源。阅读专题下面的文章了解更多详细内容。

137

2026.01.28

ao3中文版官网地址大全
ao3中文版官网地址大全

AO3最新中文版官网入口合集,汇总2026年主站及国内优化镜像链接,支持简体中文界面、无广告阅读与多设备同步。阅读专题下面的文章了解更多详细内容。

243

2026.01.28

php怎么写接口教程
php怎么写接口教程

本合集涵盖PHP接口开发基础、RESTful API设计、数据交互与安全处理等实用教程,助你快速掌握PHP接口编写技巧。阅读专题下面的文章了解更多详细内容。

8

2026.01.28

php中文乱码如何解决
php中文乱码如何解决

本文整理了php中文乱码如何解决及解决方法,阅读节专题下面的文章了解更多详细内容。

13

2026.01.28

Java 消息队列与异步架构实战
Java 消息队列与异步架构实战

本专题系统讲解 Java 在消息队列与异步系统架构中的核心应用,涵盖消息队列基本原理、Kafka 与 RabbitMQ 的使用场景对比、生产者与消费者模型、消息可靠性与顺序性保障、重复消费与幂等处理,以及在高并发系统中的异步解耦设计。通过实战案例,帮助学习者掌握 使用 Java 构建高吞吐、高可靠异步消息系统的完整思路。

10

2026.01.28

Python 自然语言处理(NLP)基础与实战
Python 自然语言处理(NLP)基础与实战

本专题系统讲解 Python 在自然语言处理(NLP)领域的基础方法与实战应用,涵盖文本预处理(分词、去停用词)、词性标注、命名实体识别、关键词提取、情感分析,以及常用 NLP 库(NLTK、spaCy)的核心用法。通过真实文本案例,帮助学习者掌握 使用 Python 进行文本分析与语言数据处理的完整流程,适用于内容分析、舆情监测与智能文本应用场景。

24

2026.01.27

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 0.8万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3.1万人学习

CSS教程
CSS教程

共754课时 | 24.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号