Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将每行的字数限制为固定宽度?_Javascript_Css - Fatal编程技术网

Javascript 如何将每行的字数限制为固定宽度?

Javascript 如何将每行的字数限制为固定宽度?,javascript,css,Javascript,Css,嗨,伙计们,我正试图找出如何限制通过javascript每行生成的单词量。这些单词与span标记一起使用,因此每个单词都是独立的,这些单词来自一个数组,只需进行迭代即可。我想让它在两行满的时候停止打印文字。建议 <div id="container"> <div id="wordsBox"> <span wordnum="1" class> Test </span> <span wordnum=

嗨,伙计们,我正试图找出如何限制通过javascript每行生成的单词量。这些单词与span标记一起使用,因此每个单词都是独立的,这些单词来自一个数组,只需进行迭代即可。我想让它在两行满的时候停止打印文字。建议

<div id="container">
        <div id="wordsBox">
        <span wordnum="1" class> Test </span>
        <span wordnum="2" class> Test </span>
        <span wordnum="3" class> Test </span>
        </div>
</div>

试验
试验
试验

容器是960px,所以我想知道当两行填满时如何停止生成跨距。

首先确定px中的字符宽度。如果这不是一个静态数字,请创建一个包含单个字符的div,然后获取该div的尺寸(确保删除其填充、边框、轮廓等)

var charWidth=12;
var-maxLines=2;
var containerWidth=960;
var wordArray=[“测试”,“测试”]//到任何长度。。。。
var maxLength=数学地板((集装箱宽度*最大线)/字符宽度);
var currentLength=0;
while(currentLength
谢谢,它不太管用,正在尝试解决它……第二行没有创建。它确实限制了第一行,但是很抱歉,回复时间太长了。这正是你的密码。这是一个快速的小提琴,看看这个。请记住,将字体设置为“36px”并不意味着宽度为每件36px。你需要让数学准确。此外,请确保使用单空格字体。我在这里设定:
var charWidth = 12;
var maxLines = 2;
var containerWidth = 960;
var wordArray = ["Test","Test"]; //To whatever length....
var maxLength = Math.floor((containerWidth*maxLines)/charWidth);
var currentLength = 0;
while(currentLength < maxLength) {
  currentLength = document.querySelector("#wordsBox").innerText.length;
  var nextWord = wordArray.shift();
  if(nextWord.length + currentLength < maxLength) {
    document.querySelector("#wordsBox").innerHTML += "<span ..>"+nextWord+"</span>";
  } else {
    currentLength = maxLength;
  }
}