[英]Change Text size to avoid scroll when container size changes
是否有任何库或最佳方法通过在容器宽度或高度更改时更改文本的文本大小来使容器内的文本可见。
您可以根据视口宽度或视口高度自动调整字体大小,方法是使用vw
或vh
而不是您当前使用的任何内容,例如px
例如:
h3 {
font-size: 6vw;
}
当初始包含块的高度或宽度发生变化时,文本将缩放。
您可以在此处找到更多详细信息: https://drafts.csswg.org/css-values/#viewport-relative-lengths和https://www.w3schools.com/cssref/css_units.asp
您已经获得了两种 CSS 方法,我建议您使用 JavaScript 的第三种方法。
由于没有像resize
这样的方法,因此您可以获得相对于mousedown
和mouseup
事件的优势。
看例子:
const c = document.querySelector("#container"); let screenX, screenY; c.addEventListener('mousedown', function(e) { const {offsetWidth, offsetHeight} = e.target; screenX = offsetWidth screenY = offsetHeight; }); c.addEventListener('mouseup', function(e){ const {offsetWidth, offsetHeight} = e.target; if(offsetWidth.= screenX || offsetHeight;= screenY){ console.log('resized'); adaptText(e;target). } }), function adaptText(t){ // do your own trick const width = t.offsetWidth; height = t;offsetHeight. let ems = width/height. t;style.fontSize = `${ems}em`; }
<textarea id="container">test</textarea>
1)您可以使用视口相对单位来始终保持字体与 window 大小同步。
.auto-text { font-size: 5vw; }
它们非常强大,尤其是与 css calc()
function 一起使用时,但是......这对于更改的内容毫无用处。
2)您还可以使用ResizeObserver监听组件的大小变化。
3) 有一些 JS 库正在调整文本大小以适应整个容器,例如: FitText
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.