当前位置: 首页 > 知识库问答 >
问题:

Vanilla JavaScript:调整字体大小-Awesome以适应容器

胡桐
2023-03-14

我一直在使用vanilla JavaScript创建一个音频播放器来操作HTML 元素。

播放机的大小是动态的,所有元素都按比例调整以适应父div。

我已经应用了我能找到的所有方法来缩放字体,以适应父容器和组合解决方案,以一种看起来功能强大的方式,但我不能使字体强大的图标缩放以同样的方式。

图标的包含方式如下:

<div>
  <button>
    <a>
      <i class="fa fa-play">
      </i>
    </a>
  </button>
</div>

我的解决方案通过实现Window.AddEventListener('resize',resizeFont);,其中resizeFont函数定义如下:

function resizeFont() {
  var elements  = document.getElementsByClassName('resize');
  console.log(elements);
  if (elements.length < 0) {
    return;
  }
  _len = elements.length;
  for (_i = 0; _i < _len; _i++) {
    var el = elements[_i];
    el.style.fontSize = "100%";
    for (var size = 100; el.scrollHeight > el.clientHeight; size -= 10) {
      el.style.fontSize = size + '%';
    }
  }
}

我在CSS中设置divbuttona元素的font-size,以便为font-awesome的默认font-size:inherit样式提供一些输入。

ResizeFont();函数在页面加载时调用一次,以确保显示的字体缩放以适应音频播放机的初始大小。

我尝试将.resize类应用于各种元素,结果如下:

div:字体不会显示,或者字体以默认大小显示,然后在调整窗口大小时消失。

A:与div相同的结果。

i:ResizeFont()在窗口加载时会将图标缩放到适合容器的正确大小,但当触发窗口调整大小事件时,字体仍然会消失。

因此,我想.resize类应该应用于I元素,但我需要以不同的方式定义它的大小或容器的大小。

共有1个答案

劳亦
2023-03-14

将类.jcfresize添加到任何包含应调整大小的字体的元素中。

将以下javascript代码添加到页面/站点:

function jcfResizeText() {
    var elements  = document.getElementsByClassName('jcfResize');
    if (elements.length < 0) {
        return;
    }
    _len = elements.length;
    for (_i = 0; _i < _len; _i++) {
        var el = elements[_i];
        el.style.fontSize = "100%";
        for (var size = 100; el.scrollHeight > el.clientHeight; size -= 10) {
            el.style.fontSize = size + '%';
        }
    }
}

jcfResizeText();
window.addEventListener('resize', jcfResizeText); 
 类似资料:
  • 我有定义了left、right和top约束的NSTextField(没有设置bottom约束)。我需要NSTextField增长,如果内容不能容纳在其中,并减少大小,如果有未使用的空间。 现在我有了:如果NSTextField有多行文本或太多内容,它会以奇怪的行为自动扩展,而且NSTextField在窗口调整大小时不会减小自己的大小。 在Swift上,我还没有找到任何简单的解决方案来解决这个问题(

  • 问题内容: 有人问过类似的问题,但是解决方案确实与我正在尝试做的事情相吻合。基本上,我有一篇标题为()的文章。我不想控制标题的长度,但是我也不想标题显示在多行上。CSS或jQuery是否可以根据标签的宽度来调整文本大小? 我知道如果可以检测到文本与边缘的重叠,我将如何处理伪代码: 如果有一个CSS属性,我可以设置为更好,但是我似乎找不到(在这种情况下,溢出不会起作用)。 问题答案: CSS否,Ja

  • 我正在尝试使图片适合JLabel。我希望将图片尺寸缩小到更适合我的Swing JPanel的尺寸。 我尝试使用setPreferredSize,但它不起作用。 我在想有没有一个简单的方法来做这件事?我应该为此缩放图像吗?

  • 下面是“DisplayImage”自定义面板相关部分的代码:

  • 我对JPanel和JFrame还是个新手,可能没有按照我应该的方式使用它们。我正在尝试创建Pong游戏,在创建JFrame并将JPanel添加到它之后,我可以调整JPanel的大小,但我不知道如何调整JFrame的大小以适应它。Game类扩展了JPanel。 主: 编辑: 将setSize更改为setPreferredSize,然后为JFrame调用pack()就可以解决所有问题。

  • 我正在尝试使用jQuery TextFill灵活地缩放字体大小以填充其可变宽度容器。问题是,我认为这只适用于固定宽度的容器。我想在一个有响应网格的站点上使用这个。 下面是我的测试,它确认jQuery TextFill对可变宽度容器不起作用:http://jsfidle.net/9uqcjdpy/1/ 如果您调整窗口的大小,您将看到底部的div大小,但文本没有缩放。如果您更改顶部容器的像素宽度,您将