【发布时间】:2017-09-19 19:16:51
【问题描述】:
注意,我不是要求根据视口的大小来缩放字体 - 我的问题是不同的。
我的 HTML/CSS/JS 应用程序本质上向用户呈现了一个状态图。屏幕上有一条带有许多按钮的消息。按下每个按钮会导致不同的屏幕 - 等等 - 确实是非常简单的概念。
作为每个按钮的每个屏幕的文本来自数据库。
设计使得按钮大小是固定的(我无法控制它)。它们足够大,几乎可以容纳应用程序可能遇到的任何内容 - 英文。
最近,我需要添加对斯瓦希里语的支持 - 突然之间,2 个单词的 15 个英文字符变成了 5 个单词,其中 50 个斯瓦希里语字符 - 它不适合按钮。这是相当糟糕的——然而只有少数这样长的按钮标签。不幸的是,由于它们是动态的(来自数据库),我无法预测它会是什么。
我能做的就是减小字体大小以适应按钮内的文本。使用vw、vh 等单位不起作用,因为无论视口大小如何,文本都应缩放为固定大小的按钮。
我想不出任何纯 CSS 的解决方案。我可以想到几个 JS 解决问题的方法(例如,放置文本,然后继续缩小直到适合 - 虽然我不太确定如何确定它适合)。
我只是无法完全弄清楚这一点。有任何想法吗?我对 CSS3 和 HTML5 很满意,只需要它在最新版本的 Chrome 和 Safari 中工作。
【问题讨论】:
-
如果您可以将文本放入 SVG 元素中 - css-tricks.com/svg-text-typographic-designs
-
@Aprillion 嗯,有趣的想法。不幸的是 SVG 不支持自动换行。现在按钮最多允许 3 行文本,自动换行,垂直和水平居中。
-
您可以使用虚拟元素进行计算吗? (如果你是我可能有一个解决方案)
-
Note, I am not asking to scale font based on size of container你不是吗?听起来你想缩放字体,因为容器的大小太小了 -
@treyhakanson 我会采用任何解决方案
标签: javascript css font-size