2015-08-08 31 views
1

我一個非常簡單的JavaScript解決方案在表格中使用overflow-x:auto時,這是非常有用的工作,腳本通過增加表格的寬度,直到行收縮是減少行高理想的高度,(我也發現有同樣的高度的問題其他問題)。HTML表解決方案最大限高爲行或單元格,通過增加表格的寬度,使用Javascript

現在只有兩件事情留下來完成這個劇本:

  1. 獲取和檢查表中每一行高度優化的方式(如果沒有這個它幾乎沒用)
  2. 代碼簡化如果可能的話。

我的JavaScript(僅適用於特定行檢查):

var h = document.getElementsByTagName('table')[0].rows[1].offsetHeight; 
if (h > 200) { 
document.getElementsByTagName('table')[0].style.width = "2000px"; 


var h = document.getElementsByTagName('table')[0].rows[1].offsetHeight; 
if (h > 200) { 
document.getElementsByTagName('table')[0].style.width = "3000px"; 


var h = document.getElementsByTagName('table')[0].rows[1].offsetHeight; 
if (h > 200) { 
document.getElementsByTagName('table')[0].style.width = "4000px"; 

} 
} 
} 

請幫我在這...

我想,也許有一個簡單的代碼,我不知道,因爲我初學者在JavaScript,但你們可能知道,簡單的代碼......

編輯:最後,這是工作的代碼,如果你想限制錶行高度:

var i = 0, row, table = document.getElementsByTagName('table')[0], j = table.offsetWidth; 
while (row = table.rows[i++]) { 
    while (row.offsetHeight > 160 && j < 4000) { 
     j += 300; 
     table.style.width = j + 'px'; 
    } 
} 

OR

for (var i = 0, row; row = document.getElementsByTagName('table')[0].rows[i]; i++) { 
    if (row.offsetHeight > 200) { 
     document.getElementsByTagName('table')[0].style.width = "1500px"; 
     if (row.offsetHeight > 200) { 
      document.getElementsByTagName('table')[0].style.width = "2000px"; 
      if (row.offsetHeight > 200) { 
       document.getElementsByTagName('table')[0].style.width = "2500px"; 
      } 
     } 
    } 
} 
+0

你也可以編輯數字,你需要 –

回答

0

沒有人回答這個問題,但我找到了解決辦法自己:

雙方將合作:

var i = 0, 
    j, row, table = document.getElementsByTagName('table')[0]; 
while (row = table.rows[i++]) { 
    j = 1000; 
    while (row.offsetHeight > 200 && j < 2500) { 
     j += 500; 
     table.style.width = j + 'px'; 
    } 
} 

OR

for (var i = 0, row; row = document.getElementsByTagName('table')[0].rows[i]; i++) { 
    if (row.offsetHeight > 200) { 
     document.getElementsByTagName('table')[0].style.width = "1500px"; 
     if (row.offsetHeight > 200) { 
      document.getElementsByTagName('table')[0].style.width = "2000px"; 
      if (row.offsetHeight > 200) { 
       document.getElementsByTagName('table')[0].style.width = "2500px"; 
      } 
     } 
    } 
} 
相關問題