javascript - 使用字母间距填充 div

标签 javascript css html letter-spacing

我遇到的问题是使用 letter-spacing 用文本填充 div。主要问题是,我不知道 div 的宽度。

首先我在考虑使用 text-align= justify,但从那以后我一直在摸索,不知道如何解决这个问题。我猜一些脚本魔法可能会起到作用。

一个 imgur 链接让你明白我的意思:

what I have versus what I want

<div id="container">
 <h1>Sample</h1>
 <p>Another even longer sample text</p>
</div>

这是一个展示示例的链接; <强> JSfiddle .

最佳答案

根据发帖人的评论,JavaScript 似乎没有问题。这是使用 jQuery 解决问题的可能方法:

JSFiddle 1

function dynamicSpacing(full_query, parent_element) {
    $(full_query).css('letter-spacing', 0);
    var content = $(full_query).html();
    var original = content;
    content = content.replace(/(\w|\s)/g, '<span>$1</span>');
    $(full_query).html(content);

    var letter_width = 0;
    var letters_count = 0;
    $(full_query + ' span').each(function() {
        letter_width += $(this).width();
        letters_count++;
    });

    var h1_width = $(parent_element).width();

    var spacing = (h1_width - letter_width) / (letters_count - 1);

    $(full_query).html(original);
    $(full_query).css('letter-spacing', spacing);
}

$(document).ready(function() {
    // Initial
    dynamicSpacing('#container h1', '#container');

    // Refresh
    $(window).resize(function() {
        dynamicSpacing('#container h1', '#container');
    });
});

更新

包装器太小时的小调整:JSFiddle 2

关于javascript - 使用字母间距填充 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22430735/

相关文章:

javascript - 通过 PWA 的社交媒体分享图片

css - background-image 和 background url 中的属性

html - 防止 <form> 两个 <form> 标签之间的换行

html - 如何向左或向右浮动两次?

javascript - 交换两个 <li> 元素

javascript - 如何迭代对象内的数组?

javascript - Redux 状态更新两个单独的对象

javascript - 我的 html 网站未在移动设备上显示

firefox - 我的 css 有问题,它在 mozilla firefox 上工作,但在 Chrome 和 safari 上不工作?

javascript - Google Analytics 的哪些功能可以在 Electron-Vue 应用程序中使用