Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
795 views
in Technique[技术] by (71.8m points)

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

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

参考上面回答 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>

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...