CSS 文本通过字母间距对齐

2023-12-21

有没有一种方法可以使用 CSS 自动将每个行中的字母间距调整为定义的宽度?

例如,“类似这样的东西”看起来像这样:

有没有一种不显眼的方式将这种样式应用于我的文本?我相信纯CSS没有这个选项(至少3之前的CSS版本没有,CSS3似乎有一个text-justify属性,但还没有得到很好的支持),所以 js 解决方案也可以。


这是一个可以做到这一点的脚本。它并不漂亮,但也许你可以修改它来满足你的需求。 (已更新以处理调整大小)

function SplitText(node) {
  var text = node.nodeValue.replace(/^\s*|\s(?=\s)|\s*$/g, "");

  for (var i = 0; i < text.length; i++) {
    var letter = document.createElement("span");
    letter.style.display = "inline-block";
    letter.style.position = "absolute";
    letter.appendChild(document.createTextNode(text.charAt(i)));
    node.parentNode.insertBefore(letter, node);

    var positionRatio = i / (text.length - 1);
    var textWidth = letter.clientWidth;

    var indent = 100 * positionRatio;
    var offset = -textWidth * positionRatio;
    letter.style.left = indent + "%";
    letter.style.marginLeft = offset + "px";

    //console.log("Letter ", text[i], ", Index ", i, ", Width ", textWidth, ", Indent ", indent, ", Offset ", offset);
  }

  node.parentNode.removeChild(node);
}

function Justify() {
  var TEXT_NODE = 3;
  var elem = document.getElementById("character_justify");
  elem = elem.firstChild;

  while (elem) {
    var nextElem = elem.nextSibling;

    if (elem.nodeType == TEXT_NODE)
      SplitText(elem);

    elem = nextElem;
  }
}
#character_justify {
  position: relative;
  width: 40%;
  border: 1px solid red;
  font-size: 32pt;
  margin: 0;
  padding: 0;
}

#character_justify * {
  margin: 0;
  padding: 0;
  border: none;
}
<body onload="Justify()">
  <p id="character_justify">
    Something<br/> Like
    <br/> This
  </p>
</body>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CSS 文本通过字母间距对齐 的相关文章

  • Chrome 扩展:插入固定 div 作为 UI

    我想使用 chrome 扩展将 div 插入固定位置 它将覆盖您当前正在查看的页面 我担心的是 我希望它可以在任何页面上工作而不改变它 除了插入我的固定 div 之外 但我不知道我这样做的方式是否可行 目前 该按钮不会显示 并且我在让 di
  • 将较新版本的 WebKit 嵌入 Android 应用程序

    我正在使用 Web 技术开发 Android 应用程序 CSS 转换 对于应用程序的功能非常重要 因为它们负责滚动和滑动页面 非常缓慢 根据互联网上找到的信息 CSS 过渡不是硬件加速的 除非进行 3 维转换 我发现很多文章说我应该放置 w
  • 如何使用div绘制曲线?

    我需要使用 CSS 绘制两条曲线 我尝试过组装一些divs 使用CSSborder radius绘制弧形面板 但结果很糟糕 还有更好的算术吗 正如我之前在评论中提到的 请不要使用CSS用于实现复杂的曲线和形状 虽然仍然可以使用 CSS 来实
  • 如何在 HTML 中制作三角形?

    我想使用基本的 CSS 在 HTML 页面中制作三角形 我正在使用需要时间加载的三角形图片 因此 我想减少页面的加载时间 HTML 不可能 但 CSS 可以 例子 div class div
  • 交替 div 使图像向左(偶数)或向右(奇数)

    我正在尝试更好地排列图像 而不仅仅是一列中的图像 请参阅附件中的示例 每篇文章的图像可以位于左侧和右侧 这是我的代码 HTML section class content list page section
  • Firefox 忽略背景大小的 css

    尝试使用背景大小 CSS 规则缩小图像 但 Firefox 3 5 似乎会忽略该规则 CSS privatejoker background aqua url styles images home privatejoker png no r
  • 夜间值班。单击带有文本的元素

    我遇到问题 无法单击具有某些独特文本的网页元素 我有这样的结构 div class wg wagon type title Text div 我试试这个 click wg wagon type title contains Text 但我有
  • 显示带有背景颜色的百分比条

    例如 如果我有一个包含两列和 2 行的表 Col1 Percentage 50 50 70 70 如何用代表 COl1 值的颜色填充百分比列 像这样的东西 您可以使用具有两个紧接着的停止点的线性渐变 percentageFill heigh
  • 单击输入字段会触发窗口调整大小

    我有一个带有徽标 菜单和搜索的标题 当我在桌面上时 我会按该顺序显示所有元素 但如果我的窗口宽度小于 980 像素 菜单会隐藏 有一个切换按钮 并且徽标会与nav并附在徽标之后 如果宽度更大 则徽标将再次分离并附加到 DOM 中的旧位置 w
  • 如何检查元素的内容是否为空,如果是,则在 jquery 中删除该元素

    我目前正在尝试选择某个 div 内没有内容的任何 h2 元素并将其删除 这是我的 html 代码 div class skipToContainer h2 class vidSkipTo Hello h2 h2 class vidSkipT
  • Symfony 2 使用 CSS 设置背景图片

    I want to put a background image for a menu in symfony But I can t figure out how to do it I managed to style a lot of t
  • 由于固定导航,增加了 FancyBox v2 的顶部和底部边距

    我目前正在开发一个网站 该网站将来将具有响应能力 该网站主要由图像组成 单击这些图像会加载到 FancyBox 中 FancyBox v2 现在具有响应能力 因此可以在屏幕尺寸发生变化时重新调整图像等的大小 作为我设计的一部分 我有两个固定
  • 跨浏览器:禁用输入字段的不同行为(文本可以/不能复制)

    我有一个被禁用的输入 html 字段 在某些浏览器 Chrome Edge Internet Explorer 和 Opera 中可以选择并复制文本 但至少在 Firefox 中这是不可能的 您可以通过在不同浏览器中执行以下代码来测试
  • 使用滤镜将css3灰色图像转为蓝色?

    我正在尝试将灰色图像变为更蓝色的色调 真的不知道如何为此设置滤镜或是否可能 该图像只有一种颜色 cacaca 其余部分透明 我正在尝试使用相同的图像进行一些叠加 以便它仅突出显示那些彩色部分而不是透明区域 一直在尝试其中的一些 但没有取得多
  • 通过 JavaScript 检测浏览器换行

    我需要 javascript 来检测每个浏览器包装的文本行并将其包装到 span class line 我读过一些关于测量每个单词的 y 轴的文章 但还没有看到可靠的解决方案 这是我到目前为止所拥有的 看到它Jsfiddle http js
  • 如何使用 javascript 或 jquery 生成 CSS 路径?

    关于如何生成元素的 CSS 路径有什么建议吗 CSS 路径是识别特定元素所需的 css 选择器的路径 例如 如果我的 html 是 div div class bar ul li 1 li li 2 li li span class sel
  • IE7 显示问题:菜单中的表格

    我写了一个菜单样式 在 IE8 FF3 6 GC7 中运行良好 现在的问题是 我的老板希望它甚至可以在 IE7 上运行 我真的很努力地让它在 IE7 上运行 但无法获得相同的外观 menu css a outline none menu m
  • 如何更改bootstrap中form-control弹出窗口中必填字段的默认消息?

  • 保持未知数量的 div 居中,每行最多 4 个

    我有一个简单的问题 但我自己无法解决 简而言之 有一个未知电话我必须在页面中放置的元素数量 最多 每行 4 个元素 但仍居中 此图片给您一个提示 我为了示例而设置它 详细 在上图中我涵盖了不同的场景 例如 如果总共有 5 个元素 则应使用第
  • 如何仅在最后一个
  • 处给出透明六边形角度?
  • 我必须制作这样的菜单 替代文本 http shup com Shup 330421 1104422739 My Desktop png http shup com Shup 330421 1104422739 My Desktop png

随机推荐

  • Android 有相当于 JPanel 的东西吗?

    Android有相当于Java的面板吗 我需要具有设定大小的东西 我可以动态添加不同的视图 有这样的技术吗 我基本上想要一个在 xml 代码中具有设定大小的空白区域 稍后我可以在活动中添加按钮 稍后添加的原因是按钮的数量和按钮的大小变化很大
  • 使用 :after 选择器添加

    我试图在页面中的每篇文章后面 自动 添加一条水平线 有没有办法使用 after 选择器来做到这一点 我希望能够将其设计成这样 article padding 10px article after content hr 这对于纯 CSS 来说
  • 如何在 Laravel 测试用例中模拟 xmlHttpRequests?

    更新内容见下文 我的控制器区分 ajax 和其他请求 使用Request ajax 作为条件 这工作得很好 但我想知道是否有一种方法可以对处理请求的控制器进行单元测试 测试应该是什么样的 可能是这样的 但它不起作用
  • 如何使用 ImageIcon 制作可拖动组件

    我正在尝试为国际象棋游戏构建一个用户界面 我用过一个网格包布局洋溢着JLabels棋子是图像图标 of the JLabels 现在我想通过在棋盘上拖动棋子来移动棋子 有没有办法做到这一点图像图标 或者有更好的方法来解决问题吗 编辑 这是一
  • MPMoviePlayerController 存在黑色背景

    我制作 iOS 应用程序 我使用 MPMoviePlayerController 但这显示黑色背景 我认为这个问题可以通过这个URL解决 但我不明白使用方式 MPMoviePlayerController 背景颜色不会粘住 https st
  • 如何使用 dcast() 对列的值求和?

    我被 dcast 函数困住了 我正在尝试为每个计数年的许多物种的个体创建一个总和表 我有一个包含 3 列的数据框 1 年份 因子 2 物种名称 因子 和 3 计数 数字 Year Species Counts 2002 SP1 2 2002
  • 将数据从 Postgres 流式传输到 Python

    我正在寻找有关将数据从 Postgres 表增量传输到 Python 的有效方法的建议 我正在实现在线学习算法 我想将数据库表中的批量训练示例读取到内存中进行处理 关于最大化吞吐量的好方法有什么想法吗 感谢您的建议 如果您使用 psycop
  • 如何使用 pandas hub_table 聚合唯一计数

    这段代码 df2 pd DataFrame X X1 X1 X1 X1 Y Y2 Y1 Y1 Y1 Z Z3 Z1 Z1 Z2 g df2 groupby X pd pivot table g values X rows Y cols Z
  • 使用 jaxb2-annotate-plugin 和 XJC 工具自定义注释

    我正在尝试在运行时将一堆 XSD 文件转换为 Java 源 POJO 这些 XML 模式将根据一些协议特定的模型定义生成 我已经使用 JAXB 的 XJC 将模式编译为 pojo 当我使用时开始遇到问题Jaxb2 注释插件 https gi
  • Kotlin 属性:“属性的类型参数必须在其接收者类型中使用”

    我有以下简单的 Kotlin 扩展函数 Get the views of ViewGroup inline val ViewGroup views List
  • Conda 使用 pint 构建无法满足的依赖关系错误

    我有一个有效的 pip 包 我正在尝试将其放到 Anaconda org 服务器上 我使用 conda 框架创建了 meta yaml 文件 其中包括 pint 的要求 没有选择特定版本 因此它应该默认为最新版本 但是 当我尝试使用 con
  • 使用 Pushviewcontroller 自下而上的动画?

    我是 iPhone SDK 新手 我正在使用以下代码 但当我单击此按钮时动画从右到左发生 我想从下到上做 IBAction clickedsButton id sender UIView beginAnimations nil contex
  • 当输入文本字段达到最大长度时移动焦点

    我有一张信用卡号码表 该号码分为四个部分 就像真正的信用卡一样 我想向表单添加 JavaScript 风格 当用户在字段中键入四个字母时 焦点会自动转到下一个标签 但不在最后一个标签中 通过这样做 用户不必键入 tab 键来移动焦点 可以在
  • 在容器的映像更新到最新版本后,Postgres 容器因“数据库文件与服务器不兼容”而崩溃

    Postgres容器在启动时崩溃并显示以下错误消息 project project git feature 62 api custom image categories docker compose up postgres Starting
  • where子句中的用例[重复]

    这个问题在这里已经有答案了 我正在尝试将 case 语句添加到查询中的 where 条件 我的查询如下所示 select from table name where if id 1 then col1 0 else col1 is null
  • `pip install` 是否将当前目录添加到 PYTHONPATH 中?

    如果我有一个 python 项目 其中包含setup py我可以运行的文件pip install user e 这将安装安装文件中列出的所有要求 并将当前项目添加到我的 pip 列表中 pip show project name Name
  • 如何通过C#在SQL中向主键标识列插入值?

    我的问题解决了 几乎每个人都说我必须删除 OB ID 并将其留给 SQL 来分配值 我想通过C 代码向SQL数据库的表中插入一条新记录 主键是身份 我怎样才能让 Visual Studio 理解该列是标识 因此 SQL Server 必须设
  • 在Sql服务器中压缩字符串并在javascript中解压缩

    我想将一个长字符串从我的数据库传输到我的网页 所以 我想尝试在服务器中压缩字符串并在客户端解压缩的方法 到目前为止 我的 sql server 代码中有这样的内容 select compress this is just a sample
  • Fragment 的 onCreateView() 方法中 getActivity() 返回 null

    为什么getActivity 返回空值onCreateView 片段方法 在这种情况下getActivity 正在返回null因为一旦 getActivity 获取活动引用onActivityCreated 调用activity的方法 该方
  • CSS 文本通过字母间距对齐

    有没有一种方法可以使用 CSS 自动将每个行中的字母间距调整为定义的宽度 例如 类似这样的东西 看起来像这样 有没有一种不显眼的方式将这种样式应用于我的文本 我相信纯CSS没有这个选项 至少3之前的CSS版本没有 CSS3似乎有一个text