容器宽高固定,字数不定,请问如何使字体大小自适应容器大小?

如题:容器宽高固定,字数不定,请问如何使字体大小自适应容器大小?达到下图这样的效果:
image.png
image.png

阅读 7.8k
3 个回答

参考上面回答 transform: scale();

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Font Size Auto Fit</title>
    <style type="text/css">
    .container {width:100%;height:2em;line-height:2em;font-size:24px;border:2px solid black;overflow:hidden;}
    .container .text {display:inline-block;line-height:2em;white-space:nowrap;background-color:#FCC;transform-origin:left center;}

    input[name="text"] {display:block;margin:1em 0;width:100%;height:2em;line-height:2em;font-size:24px;box-sizing:border-box;}
    </style>
    <script>
    document.addEventListener('DOMContentLoaded', function(){
        let domContainer = document.querySelector('.container');
        let domText      = domContainer.querySelector('.text');

        function update_text()
        {
            if(domText.clientWidth <= domContainer.clientWidth)
            {
                domText.style.transform = 'none';
            }
            else
            {
                let r = domContainer.clientWidth/domText.clientWidth;
                domText.style.transform = 'scale('+r+')';
            }
        }

        document.querySelector('input[name="btnUpdate"]').addEventListener('click', function(){
            domText.innerHTML = document.querySelector('input[name="text"]').value;
            update_text();
        });

        update_text();
    });
    </script>
</head>
<body>
<div class="container">
    <div class="text">如何使字体大小自适应容器大小?如何使字体大小自适应容器大小?</div>
</div>
<div>
    <input type="text" name="text" value="如何使字体大小自适应容器大小?" placeholder="input text line"/>
    <input type="button" name="btnUpdate" value="更新文字"/>
</div>
</body>
</html>

固定一个高度,改变字体大小,不断的试,看高度是否溢出。

获取容器长度和文本长度,动态缩放 `
transform: scale();

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题