
本文将介绍一种动态截断字符串的方法,使其适应容器宽度。该方法通过 JavaScript 实现,能够在保持字符串首尾部分完整显示的前提下,使用省略号代替中间过长的内容,从而避免文本溢出容器。同时,该方法可以保留首尾单词之间的分隔符,提供更好的阅读体验。
以下是一个使用 JavaScript 实现动态截断字符串的示例代码:
function truncateText(container) {
const text = container.innerText;
const containerWidth = container.clientWidth;
const words = text.split(' ');
let truncatedText = '';
// 确保至少保留首尾两个单词
if (words.length <= 2) {
container.innerText = text;
return;
}
truncatedText = words[0] + " - "; // 初始化为第一个单词和分隔符
for (let i = words.length - 1; i > 0; i--) {
let tempText = truncatedText + "... - " + words[i]; // 尝试添加最后一个单词
container.innerText = tempText;
if (container.scrollWidth > containerWidth) {
// 超出容器宽度,停止添加单词
container.innerText = truncatedText + "... - " + words[words.length - 1];
break;
}
truncatedText = truncatedText + "... - " + words[i];
}
// 如果第一个单词加最后一个单词已经超出宽度,则直接显示第一个单词加省略号
if (container.scrollWidth > containerWidth) {
container.innerText = words[0] + "...";
}
}
// 调用示例
const containerElement = document.getElementById('container');
if (containerElement) {
truncateText(containerElement);
} else {
console.error("Container element with ID 'container' not found.");
}代码解释:
以下是一些建议的 CSS 样式,用于确保文本能够正确显示:
#container {
width: 220px; /* 容器宽度,可以根据实际情况调整 */
white-space: nowrap; /* 禁止换行 */
overflow: hidden; /* 隐藏溢出内容 */
text-overflow: ellipsis; /* 使用省略号表示溢出内容 */
}样式解释:
以下是一个使用该方法的 HTML 结构示例:
<div id="container"> content content content content content content content content content </div>
本文介绍了一种使用 JavaScript 和 CSS 实现动态截断字符串的方法。该方法能够根据容器的宽度,自动截断过长的文本,并在首尾之间显示省略号,从而避免文本溢出容器。通过合理使用该方法,可以提高网页的可用性和用户体验。
以上就是动态截断字符串:在首尾之间显示省略号的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号