- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个元素正在从 contentful 中提取内容并在网格中显示新闻报道。
我正在尝试编写一个脚本来减小 header 标签上的字体大小,直到文本适合其父标签。
我在下面的代码片段中使用了 while 循环,但它似乎只在循环结束时减小了一次元素的大小。
我怎样才能在每次迭代中继续降低这个值?或者有人知道实现此结果的更好方法吗?
我之前尝试使用 FitText.js只是它似乎将所有元素更改为相同的字体大小。
window.onload = resize_to_fit();
function resize_to_fit() {
const CONTAINERS = document.querySelectorAll(".headline-container");
const HEADLINETEXTS = document.getElementsByClassName('headline');
for (i = 0; i < CONTAINERS.length; i++) {
var headline = HEADLINETEXTS[i];
var containerHeight = CONTAINERS[i].offsetHeight;
var headlineHeight = HEADLINETEXTS[i].offsetHeight;
var headlineLength = HEADLINETEXTS[i].innerHTML.length;
var style = window.getComputedStyle(HEADLINETEXTS[i], null).getPropertyValue('font-size');
var fontSize = parseFloat(style);
var count = 15;
while (headlineHeight > containerHeight && count > 0) {
//This only seems to happen once;
headline.style.fontSize = fontSize - 1 + "px";
count--;
}
}
}
window.onload = resize_to_fit();
function resize_to_fit() {
const CONTAINERS = document.querySelectorAll(".headline-container");
const HEADLINETEXTS = document.getElementsByClassName('headline');
for (i = 0; i < CONTAINERS.length; i++) {
var headline = HEADLINETEXTS[i];
var containerHeight = CONTAINERS[i].offsetHeight;
var headlineHeight = HEADLINETEXTS[i].offsetHeight;
var headlineLength = HEADLINETEXTS[i].innerHTML.length;
var style = window.getComputedStyle(HEADLINETEXTS[i], null).getPropertyValue('font-size');
var fontSize = parseFloat(style);
var count = 15;
while (headlineHeight > containerHeight && count > 0) {
// this only seems to happen once.
headline.style.fontSize = fontSize - 1 + "px";
count--;
}
}
}
.headline-container {
height: 50px;
width: 200px;
}
h4.headline {
font-size: 30px;
}
<div class="headline-container">
<a href="">
<h4 class="headline">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Veritatis laudantium maiores culpa eaque eius fuga officia, in nihil nostrum nesciunt porro enim aut, sit quod suscipit repellat quisquam fugit corporis.</h4>
</a>
</div>
<div class="headline-container">
<a href="">
<h4 class="headline">Porro non culpa saepe libero est cumque, quasi, temporibus id optio inventore ut incidunt quaerat a, maiores eaque dignissimos debitis quis. Suscipit facilis beatae tempore iste culpa, dolores dolor quo!</h4>
</a>
</div>
<div class="headline-container">
<a href="">
<h4 class="headline">Ullam asperiores nobis ea, dolor voluptas, consequuntur repellat possimus deserunt quia fuga hic, optio similique sunt delectus autem voluptatem inventore tenetur nulla voluptatum ab nemo culpa. Provident dignissimos veritatis et?</h4>
</a>
</div>
<div class="headline-container">
<a href="">
<h4 class="headline">Eveniet sed explicabo tempore dolorum nesciunt sapiente quasi vel quam consequuntur error, velit ullam quaerat, voluptatibus nobis voluptates, expedita vitae molestias natus laudantium architecto similique odio alias sit magnam! Fugit.</h4>
</a>
</div>
最佳答案
您的缓存值在内部循环的每次迭代中都没有改变,这意味着您每次都在比较所有相同的值,并且您总是会得到相同的结果。
如果您不缓存不需要缓存的值,请使用您确实需要缓存的值(即从未使用过headline
和container
在您的代码中),并直接从内部循环访问值,您应该没有问题。
最后一点,最佳实践通常是相当主观的并且可以解释,所以我不会告诉您如何您应该做简单的事情,但是无论您做什么...请持续的。
const containers = document.getElementsByClassName('headline-container');
const headlines = document.getElementsByClassName('headline');
for (i = 0; i < containers.length; i++) {
const headline = headlines [i];
const container = containers[i];
let count = 15;
while (headline.offsetHeight > container.offsetHeight && count > 0) {
const fontSize = parseInt(window.getComputedStyle(headline).fontSize);
headline.style.fontSize = fontSize - 1 + "px";
count--;
}
}
.headline-container { height: 30px; overflow: hidden; border: 1px solid } h1 { margin: 0 }
<div class="headline-container"><h1 class="headline">Hello World</h1></div>
关于javascript - 如何减小字体大小以适应数组中 DOM 元素的固定高度容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46453299/
我是 R 新手,我正在使用 glmer 来拟合几个二项式模型,我只需要它们来调用 predict使用得到的概率。但是,我有一个非常大的数据集,即使只有一个模型的大小也会变得非常大: > library
我有一个包含数百个项目的直方图,我为其绘制了 Q-Q 图。这导致 EPS 大小为 2.5 兆字节。对于仅包含在出版物中并且不会以 100 倍放大倍率查看的图形来说,这太大了。 R 中是否有任何选项可以
我有一个 。 mp4 文件大小为 的视频540kb 并且在转换之前的持续时间为 30 秒,但是当我使用 时ffmpeg 将其转换为文件大小变为 21mb .我需要添加哪些选项才能将文件大小减小到小于
因此,我们有一个非常庞大且复杂的网站,需要在 URL 中放置大量状态信息。大多数时候,这只是桃子,应用程序运行良好。但是,有(越来越多的)URL 长度变得非常长的实例。由于 URL 长度限制,这会在
有没有办法减少分组 UITableViewCell 的标准宽度并将自定义按钮放在左侧(单元格边界之外)?我尝试更改单元格大小,但它保持不变 最佳答案 你将不得不伪造编辑模式。我的意思是,正如 Atom
我的项目中有大约 1000 张图像,图像总大小约为 400MB。我正在使用此图像在 MAc 上显示缩略图。 构建 xcode 后,我的应用程序构建大小为 410MB。我正在使用 NSImage ima
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a software
当我编译我的 Snap 时webapp(将其部署到生产服务器),结果为 19MB!是什么赋予了?这是正常的吗?我做错了什么吗? 我的网站只有3个静态页面,基本上是snap's init project
在我们的项目中,我们决定通过使用预构建的二进制文件来减少构建时间。我们每周/每月创建一个稳定版本并将其提交到存储库。构建使用这些二进制文件,而不是从源代码构建所有内容。 对于构建速度来说,这太棒了。但
我必须创建一个自定义 jdialog,但我希望它小一点。它不应该有空白空间。下面的代码给了我这个: 如果我使用 setSize 减小大小,则会导致如下所示的错误 GUI: class Find ext
这个问题已经有答案了: pyplot: Can I set a global marker size parameter? (1 个回答) How to make markers on lines s
我正在尝试在列表中聚合使用 rpart::rpart 构建的多个 CART 模型。 我刚刚意识到每个模型在 $terms 和 $where 中存储了大量(元?)数据(在我的例子中每个模型超过 10MB
当我使用 scaledToHeight 调整 QPixmap 的大小,然后将其转换为 QByteArray 时,此 ByteArray 的大小恰好是未缩放 QPixmap 的 ByteArray 的大
有没有办法设置图形的 YSTEP? 我们正在尝试显示包含以下数据的图表 g = new Dygraph( document.getElementById("graph"),
我创建了一个 xib,其中一个单元格包含 UIImageView。 imageview 具有前导、尾随、顶部、底部约束。 xib为4kb,文件大小为4kb。我以编程方式创建了另一个具有相同约束和对象的
我正在尝试将图像大小减小到小于 64000 字节这是我的代码和日志。 NSData *beforeData = UIImageJPEGRepresentation(self.photo, 1.
我正在使用 OpenSSL-for-iPhone生成我可以与库一起使用的 OpenSSL 的自编译版本 RMStoreAppReceiptVerifier用于收据验证。具体来说,它构建了 OpenSS
我目前正在按照本指南制作多标签图像分类模型(它使用初始模型作为基础模型):https://towardsdatascience.com/multi-label-image-classification
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎是题外话,因为它缺乏足够的信息来诊断问题。 更详细地描述您的问题或include a min
我的 HTML 页面中有宽度超过 250 像素的下拉菜单。 我需要更改下拉菜单的字体大小以减小宽度。 我尝试使用如下字体标签: . . . 以
我是一名优秀的程序员,十分优秀!