html - 如何在跨度中换行而不破坏单词?
问题描述
我有一个小代码,可以将文本包装在 span 中。问题是换行没有考虑空格来改变行并打破中间的单词。
跨度文本用于独立动画字母的功能,这就是内联块的原因。
JS:
$('.text').html(function (i, html) {
var chars = $.trim(html).split("");
return '<span>' + chars.join('</span><span>') + '</span>';
});
CSS:
.text span {
display: inline-block;
min-width: 15px;
}
解决方案
每个inline-block
都被视为自己的单词。为了使单词粘在一起,您可以将每个单词包装在另一个单词中span
,例如:
$('.text').each((i, e) => {
const element = $(e);
element.html(element.text().split(' ').map(word => {
const letters = (word + ' ').split('').map(char => '<span>' + char + '</span>');
return '<span class="word">' + letters.join('') + '</span>';
}).join(''));
});
.text .word {
display: inline-block;
}
或者,如果您只需要字母之间的空格,您可以使用letter-spacing
和word-spacing
推荐阅读
- sql - Power Designer 中的自动增量代理键
- java - Selenium 脚本在本地传递,但在构建时在 Jenkins 上失败
- vue.js - 为什么 v-on 在外部模板中使用时对 Vue 组件不起作用?
- laravel - Laravel 5.5 预期响应代码 250 但得到代码“530”
- html - css:样式图像网格
- javascript - javascript: JSON.parse 日期返回错误的日期
- c++ - 如何通过stl容器和算法库计算两个向量的内积?
- c - 以下函数在 strncpy 上给出分段错误,有人可以解释为什么会发生此分段错误
- sql-server-2008 - SQL Server 使用已计算的总数查找百分比
- php - ZF2 使用 $this->getServiceLocator()->get() 在 null 上调用成员函数 get()