html - 根据 rtl 或 ltr 语言自动设置方向和文本对齐
问题描述
我们可以设置标签的direction
属性body
来指示rtl
方向ltr
。同样,我们可以text-align
为单个元素设置属性。
有没有办法最小化或集中编码工作来设计一个可以同时支持LTR
(英语)和RTL
(阿拉伯语)语言的应用程序。没关系,我可以为两个方向编写单独的 css,但是在这些 css 之间切换的最佳方法是什么(例如,在母版页加载事件中)?
还有一个例外情况,例如在英语中,我需要将网格的第一列显示为text-align:left
(它包含文本),但其余列应显示为text-align:left
,因为该列包含数值。同样,阿拉伯语的情况将相反。
解决方案
<body>
您可以将方向设置为特定值的元素作为目标,如下所示:
body span { text-align: left } /* default value */
body[direction="rtl"] span { text-align: right } /* override for rtl languages */
但是,如果您有很多使用 text-align 的元素,这可能会令人厌烦。也许您可以创建一个text-align
使用相同方法的类:
.aligned { text-align: left }
body[direction="rtl"] .aligned { text-align: right }
最后,对于更复杂的情况,您可能会发现RTLCSS很有用:
RTLCSS 是一个用于将左到右 (LTR) 级联样式表 (CSS) 转换为从右到左 (RTL) 的框架。
推荐阅读
- c# - 如何在c#中打印出矩形值?
- r - 使用 Lubridate 在 R 中将字符列转换为日期
- ios - 从锁定的设备启动 CarPlay 音频应用程序时无法启动
- python - 保护 Python Web 抓取代码免受崩溃
- ios - 删除所有文件后使用 Ubiquity Container
- node.js - 控制台说下一个没有定义
- java - Jackson 或 Gson 以 mapKey 为实体序列化/反序列化实体
- firebase - 如何将 Firebase Auth ID 令牌从客户端 SDK 发送到 Node/Express 中间件,以便使用 Admin SDK 进行验证?
- abap - VI05 - 采购订单被同一用户锁定
- windows - 使用 powershell 远程关机