现想做个表格,因为数据太多,而TABLE的速度又太慢,代码太多为了速度和代码减少,想用DIV来做表格<div> ---------表头,固定一行内容
<ul>
<li>a</li>
<li>b</li>
<li>c</li>
<li>d</li>
<li>e</li>
<li>f</li>
<li>g</li>
<li>h</li>
</ul>
</div>
<div> -------------数据库输出
<ul>
<li>a</li>
<li>b</li>
<li>c</li>
<li>d</li>
<li>e</li>
<li>f</li>
<li>g</li>
<li>h</li>
</ul>
</div>
<div> -------------数据库输出
<ul>
<li>a</li>
<li>b</li>
<li>c</li>
<li>d</li>
<li>e</li>
<li>f</li>
<li>g</li>
<li>h</li>
</ul>
</div>表格的数据大概就是这样的,也许会变,现想大家帮忙,用CSS或JS来管理和控制LI的宽当然可以修改代码,并希望代码越少越好。
<ul>
<li>a</li>
<li>b</li>
<li>c</li>
<li>d</li>
<li>e</li>
<li>f</li>
<li>g</li>
<li>h</li>
</ul>
</div>
<div> -------------数据库输出
<ul>
<li>a</li>
<li>b</li>
<li>c</li>
<li>d</li>
<li>e</li>
<li>f</li>
<li>g</li>
<li>h</li>
</ul>
</div>
<div> -------------数据库输出
<ul>
<li>a</li>
<li>b</li>
<li>c</li>
<li>d</li>
<li>e</li>
<li>f</li>
<li>g</li>
<li>h</li>
</ul>
</div>表格的数据大概就是这样的,也许会变,现想大家帮忙,用CSS或JS来管理和控制LI的宽当然可以修改代码,并希望代码越少越好。
<td width=100></td>
<td width=50></td>
每一行都写这些,想用个JS来直接定义,LI的宽,LI的列也可以增加也可以减少。用JS来统一管理,
li{ display:inline}
这样就能自动适应宽度 而且超出屏幕宽度时 滚动而不换行
<td width=25%></td>
<td width=25%></td>
<td width=25%></td>
<td width=25%></td>
</tr>变为DIV+CSS+JS
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>不知这样大家能否看懂
没必要盯着某一行或每一行LI的宽度。关键看你整个UL的宽度。
如果所有UL宽度在大体视觉上看是相同的,就只要在CSS里用一句设置UL的宽度即可。
如果每个UL宽度确实必须不同,就单独给每个UL一个CLASS,然后设置它们。
每个LI的宽度都不同的,就像TABLE一样的显示,整整齐齐。
而且为了省代码,不想每个LI都定义个CLASS
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>liCSS.html</title>
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<style type="text/css">
div li {
width: 200px;
height: 25px;
/*border: 1px solid red;*/
}
</style>
</head>
<body bgcolor="white">
<div> ---------表头,固定一行内容
<ul>
<li>a</li>
<li>b</li>
<li>c</li>
<li>d</li>
<li>e</li>
<li>f</li>
<li>g</li>
<li>h</li>
</ul>
</div>
<div> -------------数据库输出
<ul>
<li>a</li>
<li>b</li>
<li>c</li>
<li>d</li>
<li>e</li>
<li>f</li>
<li>g</li>
<li>h</li>
</ul>
</div>
<div> -------------数据库输出
<ul>
<li>a</li>
<li>b</li>
<li>c</li>
<li>d</li>
<li>e</li>
<li>f</li>
<li>g</li>
<li>h</li>
</ul>
</div>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>liCSS.html</title>
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<style type="text/css">
div li {
width: auto;
height: 25px;
/*border: 1px solid red;*/
}
</style>
</head>
<body bgcolor="white">
<div> ---------表头,固定一行内容
<ul>
<li>a</li>
<li>b</li>
<li>c</li>
<li>d</li>
<li>e</li>
<li>f</li>
<li>g</li>
<li>h</li>
</ul>
</div>
<div> -------------数据库输出
<ul>
<li>a</li>
<li>b</li>
<li>c</li>
<li>d</li>
<li>e</li>
<li>f</li>
<li>g</li>
<li>h</li>
</ul>
</div>
<div> -------------数据库输出
<ul>
<li>a</li>
<li>b</li>
<li>c</li>
<li>d</li>
<li>e</li>
<li>f</li>
<li>g</li>
<li>h</li>
</ul>
</div>
</body>
</html>
如果数据量庞大,用div+css一样很耗费资源。
应该从进行分页或者AJAX的角度入手。
不过给出一个JS的代码,作为参考。<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>模拟table</title>
<style type="text/css">
.simtable { float:left; border:#999 1px solid; padding:0px 0px 1px 1px;}
.simtable ul,.simtable li{margin:0px; padding:0px; display:block; list-style:none; }
.simtable ul{overflow:hidden;height:33px;}
.simtable li{float:left; border:1px solid #999; margin:1px 1px 0px 0px; height:30px; text-align:center; line-height:30px; vertical-align:middle;}
</style>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<script type="text/javascript">
/*<![CDATA[*/
$(document).ready(function(){
var t1 = new Date();
var simtable = $('#simtable');
//列样式:
var tableCellStyles = [
{width:'40px'},
{width:'60px'},
{width:'80px'},
{width:'100px'},
{width:'120px',backgroundColor:'#FEE'},
{width:'100px'},
{width:'60px'},
{width:'60px',backgroundColor:'#CCF'}
];
//设置各列样式:
$.each(tableCellStyles,function(index,val){
simtable.find('ul li:nth-child('+(index+1)+')').css(val);
}); //设置首行样式:
simtable.find('ul:first li').css({fontWeight:'bold',backgroundColor:'#9CF'}); //设置ul宽度自适应
simtable.find('ul').each(function(){
var width = 0;
$(this).find('li').each(function(){
width+=($(this).width()+3);//边框占2个像素,margin占1个像素
});
$(this).width(width);
});
var t2 = new Date();
alert('耗时: '+(t2-t1)+'毫秒');
});
/*]]>*/
</script>
</head>
<body>
<div id="simtable" class="simtable">
<ul>
<li>th1</li>
<li>th2</li>
<li>th3</li>
<li>th4</li>
<li>th5</li>
<li>th6</li>
<li>th7</li>
<li>th8</li>
</ul>
<ul>
<li>td1</li>
<li>td2</li>
<li>td3</li>
<li>td4</li>
<li>td5</li>
<li>td6</li>
<li>td7</li>
<li>td8</li>
</ul>
<ul>
<li>td1</li>
<li>td2</li>
<li>td3</li>
<li>td4</li>
<li>td5</li>
<li>td6</li>
<li>td7</li>
<li>td8</li>
</ul>
<ul>
<li>td1</li>
<li>td2</li>
<li>td3</li>
<li>td4</li>
<li>td5</li>
<li>td6</li>
<li>td7</li>
<li>td8</li>
</ul>
</div>
</body>
</html>
不然你格式很难对齐性能有问题就考虑分页和缓存数据吧