html tbale 中对tr td 做的一下操作总结 table样式 和几个例子 thead不动,tbody 滚动 和滚动条

4 篇文章 0 订阅
1 篇文章 0 订阅

思路

先介绍个思路

  • 平常开发中可以在设置table 样式的时候总是不方便,
  • 在这里通过 border="0" cellpadding="0" cellspacing="0"
  • 这三个参数 对table 做了下 单元格无缝隙操作
  • 然后做各种样式在td th  或td th 内部的div中做样式 边框啥的就不会出现缝隙,也就可以做到一些想要的效果了
  • 比如做个tr 上下边框样式就用td th 或内部的div 做出效果

例子

 <table   border="0" cellpadding="0" cellspacing="0">
            <thead>
                <tr>
                    <th><div class="s1">表名称</div></th>
                    <th><div class="s2">&nbsp;&nbsp;标签</div></th>
                    <th><div class="s3">所属系统</div></th>
                    <th><div class="s4" style="text-align:center;">操作</div></th>
                </tr>
            </thead>
            <tbody></tbody>
        </table>

 

第二个总结的 滚动条

 

开发中会遇到tbody 进行滚动 thead 不滚动的场景

  • 一般情况设置了 display:block 就会出现如下情况 表格的td th  不会自动伸长
  •  
    	body {padding: 100px 0 0 100px;}
    	table {width: 500px;text-align:center;
    	}
    
    	table thead {
    		width: 500px;
    		display:block;
    	}
    	table tbody {
    		width: 500px;
    		height: 100px;
    		display:block;
    		overflow: auto;
    	}
    	table tbody tr td {
    		border-bottom:1px solid #000; 
    	}
    	table thead tr th {
    		border-bottom:1px solid #000; 
    	}
    	
    </style>
    <body>
    	<table border="0" cellpadding="0" cellspacing="0"> 
    			<thead>
    				<tr><th>s1</th><th>s2</th><th>s3</th></tr>
    		   </thead>
    			<tbody>
    			   <tr><td>s</td><td>s</td><td>s</td></tr>
    			   <tr><td>s</td><td>s</td><td>s</td></tr>
    			   <tr><td>s</td><td>s</td><td>s</td></tr> 
    		   </tbody>
    	</table>
    </body>

     

这个时候就要对td th设置宽度才可以

table tbody tr td {
		border-bottom:1px solid #000;
		width:100px;
	}
	table thead tr th {
		border-bottom:1px solid #000;
		width:100px;
	}
  • 就会出现如下

然后用js 计算一下宽度即可

 

 

列出一个滚动条的样式

 ::-webkit-scrollbar {
            width: 10px; /*对垂直流动条有效*/
            height: 10px; /*对水平流动条有效*/
        }
        /*定义滚动条的轨道颜色、内阴影及圆角*/
        ::-webkit-scrollbar-track{
            -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3);
            background-color: rosybrown;
            border-radius: 3px;
        }
       /*定义滑块颜色、内阴影及圆角*/
        ::-webkit-scrollbar-thumb{
            border-radius: 7px;
            -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3);
            background-color: #E8E8E8;
        }
        /*定义两端按钮的样式*/
        ::-webkit-scrollbar-button { background-color:#E8E8E8;}
        /*定义右下角汇合处的样式*/
       ::-webkit-scrollbar-corner { background:khaki;} 
  • 就是如下的滚动条

 

js 自动添加数据实现

页面代码
<table border="0" cellpadding="0" cellspacing="0"> 
			<thead></thead>
			<tbody></tbody>
	</table>


js code




//数据替换成自己需要用的数据
	var data = [{ "s1": "ss", "s2": "ss", "s3": "ss", "s4": "ss", "s5": "ss", "s6": "ss" }, { "s1": "ss", "s2": "ss", "s3": "ss", "s4": "ss", "s5": "ss", "s6": "ss" }, { "s1": "ss", "s2": "ss", "s3": "ss", "s4": "ss", "s5": "ss", "s6": "ss" }, { "s1": "ss", "s2": "ss", "s3": "ss", "s4": "ss", "s5": "ss", "s6": "ss" }, { "s1": "ss", "s2": "ss", "s3": "ss", "s4": "ss", "s5": "ss", "s6": "ss" }, { "s1": "ss", "s2": "ss", "s3": "ss", "s4": "ss", "s5": "ss", "s6": "ss" }, { "s1": "ss", "s2": "ss", "s3": "ss", "s4": "ss", "s5": "ss", "s6": "ss" }, { "s1": "ss", "s2": "ss", "s3": "ss", "s4": "ss", "s5": "ss", "s6": "ss" }, { "s1": "ss", "s2": "ss", "s3": "ss", "s4": "ss", "s5": "ss", "s6": "ss" }, { "s1": "ss", "s2": "ss", "s3": "ss", "s4": "ss", "s5": "ss", "s6": "ss" }, { "s1": "ss", "s2": "ss", "s3": "ss", "s4": "ss", "s5": "ss", "s6": "ss" }, { "s1": "ss", "s2": "ss", "s3": "ss", "s4": "ss", "s5": "ss", "s6": "ss" }, { "s1": "ss", "s2": "ss", "s3": "ss", "s4": "ss", "s5": "ss", "s6": "ss" }]

	//直接把表头和表内全部载入
	var addTableF = function (features) {
		var hthead = "";
		var htbody = "";

		hthead += '<tr>';//编写表头
		for (var j in features[0]) {
			hthead += '<th><div>' + j + '</div></th>';
		}
		hthead += '</tr>';

		for (i = 0, len = features.length; i < len; i++) {//编写表格
			htbody += '<tr>';
			for (var j in features[i]) {
				htbody += '<td><div>' + features[i][j] + '</div></td>';
			}
			htbody += '</tr>';
		}
		$("table thead").empty().html(hthead);
		$("table tbody").empty().html(htbody);
	}
	addTableF(data);
  • 数据量小的时候,不添加滚动条不加display:block 属性,会自动伸长到自适应宽度
  • 适用于小数据量情况,或分页情况

 

如下 设置一下table 的宽即可

 

计算宽度

  • 给每个td 中的div 设定宽度 每个加一个唯一的class
  • 通总宽度除以表格横向数量得到平均值
  • 然后如果有的宽有的窄,可以按照平均值*0.6 另一个*1.4实现
 $(".s1").css("width",(glb.glbwidth-100)/4*0.6+"px");
        $(".s2").css("width",(glb.glbwidth-100)/4*1.6+"px");
        $(".s3").css("width",(glb.glbwidth-100)/4*0.8+"px");

 

 

做一个实例,一个最简单的tbody 加滚动条

<html>
<head>
	<title>New Document</title>
	<meta name="Generator" content="EditPlus">
	<meta name="Author" content="">
	<meta name="Keywords" content="">
	<meta name="Description" content="">
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<style>

	body {padding: 100px 0 0 100px;}
	
	table {text-align:center;}

	table thead {/* 宽高*/
		width: 600px;
		display:block;
	}
	table tbody {/* 宽高 */
		width: 600px;
		height: 100px;
		display:block;
		overflow: auto;
	}
	table tbody tr td {/* 添加样式 */
		border-bottom:1px solid #000;
		width:200px;
	}
	table thead tr th {/* 添加样式 */
		border-bottom:1px solid #000;
		width:200px;
	}
	
</style>
<body>
	<!-- 表格去除空隙 -->
	<table border="0" cellpadding="0" cellspacing="0"> 
			<thead>
				<tr><th>s1</th><th>s2</th><th>s3</th></tr>
		   </thead>
			<tbody>
			   <tr><td>s</td><td>s</td><td>s</td></tr>
			   <tr><td>s</td><td>s</td><td>s</td></tr>
			   <tr><td>s</td><td>s</td><td>s</td></tr>
			   <tr><td>s</td><td>s</td><td>s</td></tr>
			   <tr><td>s</td><td>s</td><td>s</td></tr>
			   <tr><td>s</td><td>s</td><td>s</td></tr>
			   <tr><td>s</td><td>s</td><td>s</td></tr>
			   <tr><td>s</td><td>s</td><td>s</td></tr>
			   <tr><td>s</td><td>s</td><td>s</td></tr>
		   </tbody>
	</table>
</body>  
</html>
  • 这里这些是需要必须有的样式设置
  • 效果如下

 

 

一个js写入代码 的最简单例子

<html>

<head>
	<title>New Document</title>
	<meta name="Generator" content="EditPlus">
	<meta name="Author" content="">
	<meta name="Keywords" content="">
	<meta name="Description" content="">
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<script src="https://code.jquery.com/jquery-3.3.1.js"></script>
<style>

	body {padding: 100px 0 0 100px;}
	
	table {text-align:center;}

	table thead {/* 宽高*/
		width: 600px;
		display:block;
	}
	table tbody {/* 宽高 */
		width: 600px;
		height: 100px;
		display:block;
		overflow: auto;
	}
	table tbody tr td {/* 添加样式 */
		border-bottom:1px solid #000;
		width:200px;
	}
	table thead tr th {/* 添加样式 */
		border-bottom:1px solid #000;
		width:200px;
	}
	
</style>
<body>
	<!-- 表格去除空隙 -->
	<table border="0" cellpadding="0" cellspacing="0"> 
			<thead></thead>
			<tbody></tbody>
	</table>
</body>  
<script>


//数据替换成自己需要用的数据
var data = [{ "s1": "ss", "s2": "ss", "s3": "ss", "s4": "ss", "s5": "ss", "s6": "ss" }, { "s1": "ss", "s2": "ss", "s3": "ss", "s4": "ss", "s5": "ss", "s6": "ss" }, { "s1": "ss", "s2": "ss", "s3": "ss", "s4": "ss", "s5": "ss", "s6": "ss" }, { "s1": "ss", "s2": "ss", "s3": "ss", "s4": "ss", "s5": "ss", "s6": "ss" }, { "s1": "ss", "s2": "ss", "s3": "ss", "s4": "ss", "s5": "ss", "s6": "ss" }, { "s1": "ss", "s2": "ss", "s3": "ss", "s4": "ss", "s5": "ss", "s6": "ss" }, { "s1": "ss", "s2": "ss", "s3": "ss", "s4": "ss", "s5": "ss", "s6": "ss" }, { "s1": "ss", "s2": "ss", "s3": "ss", "s4": "ss", "s5": "ss", "s6": "ss" }, { "s1": "ss", "s2": "ss", "s3": "ss", "s4": "ss", "s5": "ss", "s6": "ss" }, { "s1": "ss", "s2": "ss", "s3": "ss", "s4": "ss", "s5": "ss", "s6": "ss" }, { "s1": "ss", "s2": "ss", "s3": "ss", "s4": "ss", "s5": "ss", "s6": "ss" }, { "s1": "ss", "s2": "ss", "s3": "ss", "s4": "ss", "s5": "ss", "s6": "ss" }, { "s1": "ss", "s2": "ss", "s3": "ss", "s4": "ss", "s5": "ss", "s6": "ss" }]

//直接把表头和表内全部载入
var addTableF = function (features) {
	var hthead = "";
	var htbody = "";

	hthead += '<tr>';//编写表头
	for (var j in features[0]) {
		hthead += '<th><div>' + j + '</div></th>';
	}
	hthead += '</tr>';

	for (i = 0, len = features.length; i < len; i++) {//编写表格
		htbody += '<tr>';
		for (var j in features[i]) {
			htbody += '<td><div>' + features[i][j] + '</div></td>';
		}
		htbody += '</tr>';
	}
	$("table thead").empty().html(hthead);
	$("table tbody").empty().html(htbody);
}
addTableF(data);
</script>
</html>
  • 数据只要按照上边的来就可以出现
  • [{},{}]
  • 效果

 

总结这几个例子调用时候注意的地方

  •  

  • 1.样式 需要必要性 
  • thead 宽
  • tbody 宽高 overflow,display:block
  • tr td border ,width
  • tr th border,width
  • 写了上边的这个就可以实现一个好看点的table 并body 滚动thead 不动
  • ok

 

ok

 

 

持续更新

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值