【发布时间】:2018-09-04 21:53:01
【问题描述】:
我有几个 div,其中包含各种文本(标题、段落……),字体大小为 em。 我想检测这些 div 中是否存在溢出,然后在减小字体大小的同时进行迭代,直到所有内容都适合 div。
现在我的scrollHeight 总是等于clientHeight,我没有检测到溢出。
我的 div 正在使用 flexbox,并且不能具有固定的像素大小!
var fitDivs = document.querySelectorAll("div[data-slide-fit]");
fitDivs.forEach(function(fitDiv) {
if (fitDiv.scrollHeight > innerHeight(fitDiv)) {
var style = window.getComputedStyle(fitDiv, null);
var innerHeight = el.clientHeight
for (iFontSize = 20; iFontSize > 10; iFontSize--) {
fitDiv.style['font-size'] = iFontSize + 'px';
if (fitDiv.scrollHeight < innerHeight) {
break;
}
}
}
});
.container {
display: flex;
height: 300px;
width: 400px;
margin: 20px;
background-color: aqua;
}
.container>div {
width: 50%;
padding: 10px;
}
h2 {
font-size: 2.5em;
}
p {
font-size: 1.3em;
}
<div class="container">
<div class="column" data-slide-fit="">
<h2>Column 1</h2>
<p>This is a very very very very very very very very very very very very very very very very very very very very very very very very very long text</p>
</div>
<div class="column" data-slide-fit="">
<h2>Column 2</h2>
<p>This is a an ven very very very very very very very very very very very very very very very very very very very very very very very very very very very very long text</p>
</div>
</div>
【问题讨论】:
标签: javascript html css layout flexbox