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

有没有一种方法可以在不使用css溢出的情况下调整字体大小以适应固定的框?[副本]

郎河
2023-03-14

<代码>

当字母数量增加并离开该区域时,是否有办法自动减小字体大小而不是css溢出?

共有1个答案

宋安晏
2023-03-14

我发现这个问题很有趣,所以我将提供一个简单的JavaScript示例,以防它对某人有所帮助。

const div = document.querySelector('div');
const span = document.querySelector('span');


createDynamicTextbox(div, span);


function createDynamicTextbox(outer, inner) {
  if (!outer.style.fontSize) outer.style.fontSize = outer.clientHeight;
  const initialSize = +outer.style.fontSize.match(/\d+/)[0];

  inner.addEventListener('input', function(e) {
    let [n, unit] = outer.style.fontSize.split(/(?<![a-z])(?=[a-z]+)/);
    n=+n;

    while (outer.offsetWidth > inner.offsetWidth) {
      n++;
      outer.style.fontSize = n+unit;
      if (n >= initialSize) return;
    }

    while (inner.offsetWidth > outer.offsetWidth) {
      n--;
      outer.style.fontSize = n+unit;
      if (n <= 0) return;
    }
  });

  inner.dispatchEvent(new InputEvent('input'));
}
css prettyprint-override">div {
  width: 100px;
  overflow: hidden;
  white-space: nowrap;
}
<div style="font-size: 30px"><span contenteditable>Edit Me</span></div>
 类似资料:
  • 我试图使用confluent的模式注册表使我的应用程序工作,但此时我并不是生产者的完全控制者,你甚至可以将它们视为不绑定confluent产品的遗留应用程序。 我正在查看融合信息,似乎所有消息都应该在有效负载中包含一个魔法字节和模式ID https://docs.confluent.io/3.2.0/schema-registry/docs/serializer-formatter.html 或者

  • 我想在我的spring web应用程序中添加几个过滤器,但至少现在不会有任何关于安全性的内容。所以。没有spring-security我所能做的就是在web.xml中定义多个过滤器(定义过滤器的旧方法)。要能够使用spring过滤器链,我需要为我的项目添加spring-security作为依赖项,这似乎很奇怪。也许我做错了什么,而且确实有过滤器链可以在没有spring-security依赖的情况下

  • 考虑下面的代码: 运行时,它输出以下内容: 这很酷,我们可以很容易地转储一个结构,但是我的一些数据结构包含位掩码或其他不容易在基数10中读取的数据。对于位字段,读取它会更容易,它们的输出类似于。 有没有一种简单的方法可以获得这样的输出,而不直接在结构上实现trait(在另一种类型上实现trait就可以了)? 如果有必要,我可以使用不同的类型,但是我希望保持结构本身的调试特性像一样简单。

  • 我有一个Spring Boot应用程序,注释为。几乎所有的存储库都需要实现一些自定义逻辑,这是使用完成的。 是否有方法创建将从机制中排除的存储库?

  • 问题内容: 关于将行旋转为各种数据库的列,有很多文章。他们似乎分为两个阵营,使用案例陈述或使用数据库供应商的内置功能。我正在使用 MySQL ,到目前为止,在任何内置函数上都找不到任何东西,这将使我能够选择任意数量的行值(我想将其转换为列)。如果我不提前知道这些值,则无法构建经常出现在的CASE查询。我想知道在MySQL中是否有类似于其他数据库中称为交叉表或数据透视表的东西: -Postgresq

  • 问题内容: 我刚刚收到Java更新通知,说Update 17已经发布,所以我运行了更新,发现只有我的公共JRE被更新了。我仍然只有JDK的Update 16。 有没有办法自动提供最新的JDK? 当然,更新不应该放弃旧版本。这应该手动完成,因为Eclipse仍在使用旧版本。更新设置后,我将手动删除旧的JDK。 问题答案: 不在Windows上。如果要通过带有自动更新程序的Linux发行版来获取JDK