原生JavaScript实现文本内容的文字数量变化,适配容器宽度和高度,文本内容文字字体的字号大小自动缩小,保障文字全部都在容器内显示完

server/2025/1/12 5:18:42/

 

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>文字自动填充容器</title><style>body {display: flex;}textarea {width: 200px;height: 200px;margin-left: 20px;}.outer {width: 200px;height: 200px;box-sizing: border-box;border: 1px solid #F56C6C;}.container {word-wrap: break-word;word-break: break-all;white-space: break-spaces;box-sizing: border-box;border: 1px dashed #67C23A;}</style>
</head><body><div class="outer"><div class="container">这是一段很长的文本内容,当内容超出容器宽度时,字体大小会自动缩小来适应容器。</div></div><textarea oninput="input(this.value)"></textarea></body>
<script>let findFontSize = (container, { text, fontSize = 100, containerHeight = 100 } = {}) => {container.innerText = text;let setFontSize = (size) => (container.style.fontSize = `${size}px`);setFontSize(fontSize);// 如果内容超过了容器高度就减小字号console.log(``, container.offsetHeight);while (container.offsetHeight > containerHeight) {fontSize--, setFontSize(fontSize);}}let input = (text) => findFontSize(document.querySelector(`.container`), { text, containerHeight: 200 });</script></html>


http://www.ppmy.cn/server/157673.html

相关文章

Python对象的序列化和反序列化工具:Joblib与Pickle

在Python中&#xff0c;序列化是将内存中的对象转换为可存储或传输的格式的过程。常见的序列化格式有JSON、YAML、Pickle和Joblib等。其中&#xff0c;Pickle和Joblib是最常用的用于序列化和反序列化Python对象的工具。虽然这两者有很多相似之处&#xff0c;但它们在某些方面有…

【react进阶】create-react-app高阶配置

create-react-app新建项目还是官网推荐的主流方法&#xff0c;当然vite已经使用越来越广泛了&#xff0c;构建速度也是比cra快几倍。记录下怎么用cra来搭建一个react项目。 在index.html文件中使用变量 1.在script代码中的使用方式 <script>const $ window.$ "…

面试:类模版中函数声明在.h,定义在.cpp中,其他cpp引用引入这个头文件,会有什么错误?

1、概述 类模版中函数声明在.h&#xff0c;定义在.cpp中&#xff0c;其他cpp引用引入这个头文件&#xff0c;会有什么错误?报编译错误&#xff1a;error C2512: Demo<int>: no appropriate default constructor available 举例如下代码&#xff1a;demo.h 声明模版类 …

K-means算法在无监督学习中的应用

K-means算法在无监督学习中的应用 K-means算法是一种典型的无监督学习算法&#xff0c;广泛用于聚类分析。在无监督学习中&#xff0c;模型并不依赖于标签数据&#xff0c;而是根据输入数据的特征进行分组。K-means的目标是将数据集分成K个簇&#xff0c;使得同一簇内的数据点…

【解决方案】Golang结构体传0被忽略

【解决方案】Golang结构体传0被忽略 在 Go 语言中&#xff0c;当结构体字段标记为 omitempty 时&#xff0c;在将结构体序列化为 JSON 或其他格式时&#xff0c;如果字段的零值&#xff08;比如数字类型的0、字符串类型的空字符串等&#xff09;会被忽略&#xff0c;不会被序列…

【Linux】lnav - 适用于Linux和Unix的出色终端日志文件查看器

lnav 工具有哪些独特的功能&#xff1f; 你可以根据需要实时解压缩日志文件&#xff0c;类似于 Linux 和 Unix 上的 z* 工具。自动检测日志文件格式。按时间合并多个文件&#xff0c;形成一个统一的视图。终端颜色支持&#xff0c;让你更容易发现错误和警告。支持通过 SSH (SF…

C++ 如何将 gRPC集成到机器人系统中

将 gRPC 集成到 C 机器人系统中可以显著提升系统的通信效率和性能。以下是一个基本的步骤指南&#xff1a; 安装 gRPC 和依赖项&#xff1a; 在 Linux 系统上&#xff0c;可以使用以下命令安装 gRPC 和其依赖项&#xff1a;sudo apt update sudo apt install -y build-essentia…

ingress-nginx-controller安装

ingress-nginx-controller安装 ingress-nginx-controller是配置ingress发布的基础。以下主要采用Helm安装。地址&#xff1a; GitHub - kubernetes/ingress-nginx: Ingress NGINX Controller for Kubernetes 1 Helm安装 安装不难&#xff0c;需要找到合适的压缩包就行。我自…