我有一个文本输入和预览文本 div。我希望预览文本font size
根据给定的height
. 请记住,它只会看到height
调整其字体大小,width
将auto
.
我有谷歌并进行了很多研究,我也尝试过它们,但这些问题/答案与我的不同。
当我将 div 高度设置为 时,它应该根据该高度50px
自动调整,高度不应大于给定的高度,当文本转到下一行时,它应该将to递减到. 这是代码:font size
height matters
font size
fit the text
height
const input = document.querySelector('input')
input.addEventListener('input', (e) => {
const self = e.currentTarget
const size = parseInt(self.value)
const textElem = document.querySelector('.previewText')
textElem.style.height = `${size}px`
adjustText(size, textElem)
})
const adjustText = (size, textElem) => {
const childElem = textElem.firstChild.nextElementSibling
let fontSize = textElem.style.fontSize
fontSize = fontSize.replace('px', '')
for (let i = 0; i < size; i++) {
if (textElem.offsetHeight > childElem.offsetHeight) {
console.log('greater tha')
textElem.style.fontSize = `${i}px`
}
if (textElem.offsetHeight < childElem.offsetHeight) {
console.log('less than')
textElem.style.fontSize = `${fontSize - 1}px`
}
}
}
<input type="number">
<div class="previewText">
<div>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod.</div>
</div>
它几乎可以正常工作,但不能完美运行。有人可以帮帮我吗?我被困住了...