HTML5字母列[关闭]

Posted

技术标签:

【中文标题】HTML5字母列[关闭]【英文标题】:HTML5 Column of Letters [closed] 【发布时间】:2015-05-29 07:19:06 【问题描述】:

我需要将我的字母存储在一个字符串中,它们之间有空格,以形成一个字母仍然直立的垂直列。这需要在 html5 Canvas 中完成,我不知道从哪里开始,有什么想法吗?

【问题讨论】:

至少你可以绘制或展示任何你想要的样本。就像“我想要一只羊长得像山羊长得像牛等等”。如果您的问题需要更多时间来理解,那么您如何期望有人帮助您。 @Nepal12 我已经编辑了我的问题,以便为您提供所需的详细信息,希望您再看看。 @GameAlchemist 很抱歉,作为一名学生,自己无法找到答案,所以我转向了这个网站。如果你很擅长这个,请随时留下答案。 提示:context.fillText 绘制文本,它有 2 个必需参数:要绘制文本的 x,y 坐标。掌握了这些知识---继续学习更多关于 html5 画布的信息 @GameAlchemist 你喝醉了吗?阅读 Optimizing For Pearls, Not Sand(官方 SO 观点关于回答糟糕的问题)。 【参考方案1】:

你需要做的步骤如下:

迭代字符串的每个字符 使用fillText(或strokeText)在你想要的位置绘制字符 增加每个字符的高度。

示例

var ctx = document.querySelector("canvas").getContext("2d"),  // get context of canvas
    str = "H E L L O",
    char, i = 0, len = str.length,
    x = 10, y = 30, height = 24;

ctx.font = "bold 24px sans-serif"; // set a font for text

while(i < len) 
  char = str.substr(i++, 1);       // get a char from string at index i
  ctx.fillText(char, x, y);        // draw to canvas at (x, y)
  y += height;                     // increment y with height
&lt;canvas width=50 height=250&gt;&lt;/canvas&gt;

请注意,字体高度与字体大小不同,因此请好好猜测一下(TextMetics 假设实现了这一点(上升+下降),但并非所有浏览器都存在)。

【讨论】:

这只是您的回答的主题,但似乎许多排版师使用黄金比例从字体大小计算行高。这是一篇我发现对修改后的黄金比例计算有用的文章:imarc.net/blog/750-using_the_golden_ratio_with_typography。 @markE 是的,黄金比例在古典和现代中一直很重要,从建筑到印刷。不过,它的大小与高度的历史背景略有不同。过去使用移动字体时,字母所在的盘子是“大小”。字母本身的高度可能会有所不同。这个概念或多或少成功地引入了数字世界(这也是 72.272 dpi 的用武之地):) ...完全跑题了,我看看你的psd-reader lib——太棒了!

以上是关于HTML5字母列[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法通过css慢慢地将字母添加到文本中? [关闭]

HTML5 表单验证模式带有空格的字母数字?

用于文本框验证的 HTML5 正则表达式模式:仅允许字母、空格和某些字符

英文字母中哪个字母占用的像素最多? [关闭]

如何屏蔽信用卡号的前两个字母和后四个字母[关闭]

在 C++ 中更改 6 个字母单词的第一个和最后一个字母 [关闭]