[修改后]html+css 做成一个可浏览的表格

现在表格内容需要显示的要求如下:

1, 表格很大,界面放不小,需要放到div中。

2, 在div中可以用scroll滑动查看。

3, td中的内容保持在一行中。

4, 可以点击tr,然后可以选中并了解点击了哪行。

 

html:

<div id="div1">

  <table id="table1">

    <tr></tr>

  </table>

<div>

 

css:

//div宽度要小于table就有scroll了。

#table1 {border-collapse:collapse;height:100;}

#table1 table ,th, td {border: 1px solid black;}

#table1 td{

width:230px;  /*宽度根据需要设置,也可以设置百分比*/

height:25px;line-height:25px;  /*高度也是根据需要设置*/

white-space:nowrap;  /*文本显示不自动换行*/

/*overflow:hidden;*/  /*超出部分显示*/

}

#div1 {border: 1px solid red;width:460; height:180px;overflow:scroll;}

 

js:

给点击增加一个onmousedown事件处理。

var trs = document.getElementById('table1').getElementsByTagName('tr');

var choose;  

window.onload = function(){  

 for( var i=0; i<trs.length; i++ ){  

  trs[i].onmousedown = function(){  

   tronmousedown(this);

  }  

 }  

}

function tronmousedown(obj){  

 for( var o=1; o<trs.length; o++ ){  

  if( trs[o] == obj ){  

   trs[o].style.backgroundColor = 'lightblue';

   choose = o;

  }  

  else{  

   trs[o].style.backgroundColor = '';  

  }  

 }  

}

 

可以一起交流。

--------------------------------------!!!

修改的分割线

收到博友daryluo的建议:“代码有一点不太好的地方,就是给每一个tr都添加了事件,事实上,只需要给table 一个元素添加事件就可以,当用户点击到td元素上时, 事件会冒泡到tr,然后到table, 在事件处理函数中,可以获取td 元素,然后找到父tr, tr上有rowIndex属性,就知道点击哪行了.”

于是,我把事件追加到了table上,通过手机evevt的srcElement找到td元素,然后通过parentNode找到其tr元素。再对此元素单独进行处理即可。

代码如下:

js:

var tb = document.getElementById('table1')

var trs = tb.getElementsByTagName('tr')



window.onload = function(){

  tb.onmousedown = function(evt){

    tronMousedownNew(evt)

  }

}

function tronMousedownNew(evt){

  var ele = evt.srcElement;

  var rowIndex = ele.parentNode.rowIndex;

  choose = rowIndex;

  process(rowIndex);

}



function process(index)

{

  for(var i=0; i< trs.length; i++){

    if(i == index){

      trs[i].style.backgroundColor = 'lightblue';

    }

    else{

      trs[i].style.backgroundColor = '';

    }

  }

}

刚刚开始入门,多谢指教。

你可能感兴趣的:(html)