Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.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 - Fatal编程技术网

使用javascript宽度时表中的额外空间

使用javascript宽度时表中的额外空间,javascript,Javascript,我不是为每个表使用CSS宽度,而是使用javascript根据单元格中的文本量自动使表变宽。但当滚动水平滚动条时,它也会在表格的最右侧留下空白和绿色空间。哪些代码在生成此空白,以及删除此空白的好方法是什么 参见示例:我的屏幕大小:1366*768 HTML: Javascript: var i=0,row,table=document.getElementsByTagName('table')[0],tabwid=table.offsetWidth; while(row=table.rows[

我不是为每个表使用CSS宽度,而是使用javascript根据单元格中的文本量自动使表变宽。但当滚动水平滚动条时,它也会在表格的最右侧留下空白和绿色空间。哪些代码在生成此空白,以及删除此空白的好方法是什么

参见示例:我的屏幕大小:1366*768

HTML:

Javascript:

var i=0,row,table=document.getElementsByTagName('table')[0],tabwid=table.offsetWidth;

while(row=table.rows[i++])
{var hei=row.offsetHeight;
 while(tabwid<4000)
 {tabwid+=500;table.style.width=tabwid+'px';
  if(row.offsetHeight==hei)
  {table.style.width=tabwid-500+'px';break;}
 }
}

编辑:我发现表是可见的,额外的空白和绿色空间也是其中的一部分。

似乎与JS中的以下更改一起工作

我添加了一个windowWidth变量,这样可以得到每个浏览器窗口的宽度。 然后,不再像以前那样检查4000,而是检查浏览器窗口大小

  var i=0,row,table=document.getElementsByTagName('table')

    var windowWidth =  window.innerWidth;   

    [0],tabwid=table.offsetWidth;

     while(row=table.rows[i++])
     {var hei=row.offsetHeight;
         while(tabwid<windowWidth)
           {tabwid+=500;table.style.width=tabwid+'px';
             if(row.offsetHeight==hei)
           {table.style.width=tabwid-500+'px';break;}
        }
    }

感谢您的回答,但当我使用您的脚本时,除了单元格中的标记外,并没有滚动条和额外的换行符,这与不使用javascript相同。。。有什么想法吗?我的意思是最大的表格内容文本总是在40000表格宽度之内
var i=0,row,table=document.getElementsByTagName('table')[0],tabwid=table.offsetWidth;

while(row=table.rows[i++])
{var hei=row.offsetHeight;
 while(tabwid<4000)
 {tabwid+=500;table.style.width=tabwid+'px';
  if(row.offsetHeight==hei)
  {table.style.width=tabwid-500+'px';break;}
 }
}
  var i=0,row,table=document.getElementsByTagName('table')

    var windowWidth =  window.innerWidth;   

    [0],tabwid=table.offsetWidth;

     while(row=table.rows[i++])
     {var hei=row.offsetHeight;
         while(tabwid<windowWidth)
           {tabwid+=500;table.style.width=tabwid+'px';
             if(row.offsetHeight==hei)
           {table.style.width=tabwid-500+'px';break;}
        }
    }