html 如何使长文本适合一个小div?

js4nwp54  于 2022-11-27  发布在  其他
关注(0)|答案(6)|浏览(121)

我有一个指定宽度的div,但是它里面的文本没有相应地分解和适应div。
这可能是一个错误的问题。如何使它适合在div内?
我相信它不可能完全适合里面,至少它可以适合里面的div根据宽度,而不是高度。
碳硫

.limit{
    width:50px;
}

HTML语言

<div class="limit">
    <p>fasfhfhsjdhkjhdkjhfjkhdsfjkhdfjhdfiuhadfhjdfhjadskf kjahsdjfahdfuahsdf dhsf</p>
</div>

JSFIDDLE

rxztt3cl

rxztt3cl1#

您只需要word-wrap: break-word;
第一个
Demo
另一方面,如果你不想打断句子,你也可以使用overflow属性设置为autooverflow-x: scroll;-Demo

xxhby3vn

xxhby3vn2#

如果您正在寻找一种方法来调整div的字体大小以适应整个文本而不需要断字或滚动,您应该使用JavaScript来检测文本是否溢出并相应地调整字体大小:

function fitText(outputSelector){
    // max font size in pixels
    const maxFontSize = 50;
    // get the DOM output element by its selector
    let outputDiv = document.getElementById(outputSelector);
    // get element's width
    let width = outputDiv.clientWidth;
    // get content's width
    let contentWidth = outputDiv.scrollWidth;
    // get fontSize
    let fontSize = parseInt(window.getComputedStyle(outputDiv, null).getPropertyValue('font-size'),10);
    // if content's width is bigger then elements width - overflow
    if (contentWidth > width){
        fontSize = Math.ceil(fontSize * width/contentWidth,10);
        fontSize =  fontSize > maxFontSize  ? fontSize = maxFontSize  : fontSize - 1;
        outputDiv.style.fontSize = fontSize+'px';   
    }else{
        // content is smaller then width... let's resize in 1 px until it fits 
        while (contentWidth === width && fontSize < maxFontSize){
            fontSize = Math.ceil(fontSize) + 1;
            fontSize = fontSize > maxFontSize  ? fontSize = maxFontSize  : fontSize;
            outputDiv.style.fontSize = fontSize+'px';   
            // update widths
            width = outputDiv.clientWidth;
            contentWidth = outputDiv.scrollWidth;
            if (contentWidth > width){
                outputDiv.style.fontSize = fontSize-1+'px'; 
            }
        }
    }
}

这段代码是我上传到Github https://github.com/ricardobrg/fitText/的测试的一部分

s4n0splo

s4n0splo3#

修改了类限制。您可以在一行中显示整个文本。
CSS

.limit p {
    overflow-x: scroll;
    white-space: nowrap;
    width: 50px;
}
fafcakar

fafcakar4#

您也可以使用以“vw”为单位的字体大小。

.limit {
font-size : 1.3vw;
}
qxsslcnc

qxsslcnc5#

white-space的值从nowrap修改为normal解决了我的问题,使文本适合一个固定的div。

uhry853o

uhry853o6#

你可以这样设计它。这很简单。看数字4是如何滚动的
第一个

相关问题