固定表头,单元格td宽度自适应,多内容出现-横向纵向滚动条数据表格的<前世今生>
&

无论多少数据……都完美!
A:单一table来实现需求
html结构如下
<table class="form-table">
<thead class="fixed-thead"></thead>
<tbody class="scroll-tbody"></tbody>
<tfoot class="fixed-tfoot"></tfoot>
</table>
thead、tfoot设置display: block;
tbody设置display: block;overflow: auto;and 固定高度数值;
为了使得上中下方对齐,在给thead、tfoot设置padding-right: 17px;(17px为滚动条的宽度)
以及给td设置width: 25%;(100%/X)值为td的列数
so,这样既可实现完美对齐的效果.而且,这版也实现了td内容多了,会自适应撑开,左右居中,垂直居中对齐
ps:前面几个版本中,破坏了tr td默认的属性值,来来回回写了很多float,block,现在这个版本,最为精简.
不管结构还是样式,都做到了,目前的最简!
但是,这样得写死td的固定宽度,应用到项目中,还需根据需求js来计算td数量,在重新计算td宽度,来实现,分配!
另:此版只兼容 IE10+
B:可以说是3个table来实现
html结构如下
<div class="container">
<table class="form-table fixed-thead"></table>
<div class="scroll-box">
<table class="form-table"></table>
</div>
<table class="form-table fixed-tfoot"></table>
</div>
那么,为什么,需要给第二层 中间的内容,嵌套一层 div呢?是为了解决,IE下没有滚动条的兼容性问题.
至于头部和尾部,这里可以使用div,可以使用table,ul等
C:flex实现table表头固定
html结构如下
<table class="form-table">
<thead class="fixed-thead"></thead>
<tbody class="scroll-tbody"></tbody>
<tfoot class="fixed-tfoot"></tfoot>
</table>
只是使用了display: -webkit-flex;属性,就可以完美兼容了谷歌等高级浏览器,在移动端,效果最佳.
前途很美好,明媚!如此,世界很安静了。
但是,均分了,相当于写死单元格td宽度了。
D:div模拟表格
搜索了很多业界的写法,很多div模拟的表格。不能说对与错吧。我司是使用table标准的领跑者。
但是也做了一个demo,详情可见附件
F:最终版
然而上面所述的实现上有个条件是要提前设置单元格的大小,如果不设置, 就会错位!
当前我们的zui框架里面采取的是,js计算tbody的td单元格宽度,在赋值给thead,当列多了,会有点丝丝错位
经过国庆佳节的打磨,融汇出了一个完全自适应宽度,且始终对齐的 “数据表格”版本!
这个运用了css3中的transform,相当于是复制了份出来,然后transform的计算速度也够快。用这个做这个功能非常合适,还要加点js用于监听滚轮。
结构如下
<div class="table-cont">
<table>
<thead>
<tr><th></th></tr>
</thead>
<tbody>
<tr><td></td></tr>
</tbody>
</table>
</div>
剩余的交给css去实现吧
thead th{
position: relative;
}
.table>tbody>tr>td,
.table>tbody>tr>th,
.table>tfoot>tr>td,
.table>tfoot>tr>th,
.table>thead>tr>td,
.table>thead>tr>th {
white-space: nowrap;
}
如上详情,分析对应的demo效果,附件文件夹都有,详情可自行下载查看。
虽然,写的不怎么样,作为一个储备库吧,日后会不断完善,更新,避免再次填坑。
以上是我目前网络搜寻书籍参考结合实践后的理解总结。仅作为备忘录而已。
如有错误,请不吝赐教;如有疑问,欢迎讨论;如有帮助,万分荣幸;如有雷同,握个手吧…………
固定表头,单元格td宽度自适应,多内容出现-横向纵向滚动条数据表格的<前世今生>的更多相关文章
- 表格单元格td设置宽度无效的解决办法 .
http://zzstudy.offcn.com/archives/11366 在做table页面时,有时对td设置的宽度是无效的,td的宽度始终有内部的内容撑开,可以设置padding,但直接设置w ...
- Java导出Excel表,POI 实现合并单元格以及列自适应宽度(转载)
POI是apache提供的一个读写Excel文档的开源组件,在操作excel时常要合并单元格,合并单元格的方法是: sheet.addMergedRegion(new CellRangeAddress ...
- POI 实现合并单元格以及列自适应宽度
POI是apache提供的一个读写Excel文档的开源组件,在操作excel时常要合并单元格,合并单元格的方法是: sheet.addMergedRegion(new CellRangeAddress ...
- JAVA操作Excel时文字自适应单元格的宽度设置方法
使用JAVA操作Excel通常都使用JXL,方法很简单网上也有很多的教程,然后往往一些细节性的问题却导致我们这些Programmer苦恼不已.这两天帮一个朋友做一个Excel表格自动生成的小软件,就遇 ...
- asp.net使用控件datagrid实现表头单元格合并
合并的要点: 1.datagid的单元格合并原理是table中tr,td的布局实现; 2.合并的时机实在其datagridcreate事件中实现; 3.认识一个对象TableCellCollectio ...
- (zz)设置单元格的宽度和高度
(zz)设置单元格的宽度和高度 博客分类: POI生成Excel 在Excel中,单元格的宽度其实就是列的宽度,因为Excel假设这一列的单元格的宽度肯定一致.所以要设置单元格的宽度,我们就得从列 ...
- 在一个Excel单元格内输入多行内容
有时候,我们想在一个Excel单元格中输入多行内容,可以根据不同情况选择下面的方法来实现: 方法一:如果有大量的单元格需要这样做,采取此种设置格式的方法,选中需要这种格式的单元格,执行“格式→单元格” ...
- ie固定table单元格宽度
<table border="0" style="width:690px; table-layout:fixed;"> <tr> < ...
- css对html中表格单元格td文本过长的处理
参考 http://www.cnblogs.com/lekko/archive/2013/04/30/3051638.html http://www.zhangxinxu.com/wordpress/ ...
随机推荐
- 二叉树的递归遍历 Tree UVa548
题意:给一棵点带权的二叉树的中序和后序遍历,找一个叶子使得他到根的路径上的权值的和最小,如果多解,那该叶子本身的权值应该最小 解题思路:1.用getline()输入整行字符,然后用stringstre ...
- N卡全部历史驱动
记录一下寻找驱动方法 打开链接 http://www.geforce.cn/drivers/beta-legacy 默认搜索出来是10个,之后打开控制台输入如下内容回车显示全部(100,可以修改数字来 ...
- Spring的Bean内部方法调用无法使用AOP切面(CacheAble注解失效)
Spring的Bean内部方法调用无法使用AOP切面(CacheAble注解失效) 前言 今天在使用Spring cache的Cacheable注解的过程中遇见了一个Cacheable注解失效的问题, ...
- elasticsearch 学习笔记
基本概念 集群和节点的概念1.集群是由节点组成的2.每个集群都有唯一的名字默认是elasticsearch3.cluster.name: niubiwali //集群的名字很重要因为每个节点只是集群的 ...
- MySQL · 引擎特性 · InnoDB 事务系统
前言 关系型数据库的事务机制因其有原子性,一致性等优秀特性深受开发者喜爱,类似的思想已经被应用到很多其他系统上,例如文件系统等.本文主要介绍InnoDB事务子系统,主要包括,事务的启动,事务的提交,事 ...
- HDOJ 4251 The Famous ICPC Team Again
划分树水题..... The Famous ICPC Team Again Time Limit: 30000/15000 MS (Java/Others) Memory Limit: 3276 ...
- 自学Zabbix3.6.3-触发器triggers expression表达式
触发器中的表达式使用很灵活,我们可以创建一个复杂的逻辑测试监控,触发器表达式形式如下: 1 {<server>:<key>.<function>(<param ...
- 自学Python3.1-函数基础
一.函数概述 1. 简介 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段.函数能提高应用的模块性,和代码的重复利用率. 2. 组成 函数代码块以 def 关键词开头,后接函数名和圆括 ...
- PDO绑定含IN的SQL语句的参数注意事项
PDOStatement::bindParam(),表示将PDO::prepare()语句中的占位符用参数替换掉.注意,在绑定含有IN的SQL多参数语句时要额外小心,比如$stmt = $db-> ...
- SSH框架完全整合
大三学期渐末,事情也挺多的,上周就开始着手整合SSH框架,到现在才真正的完成,过程中碰到了许多小问题(小问题大折腾,哭脸.jpg).本着善始善终的原则,最终把它给完成了. 本篇文章就在: win7 6 ...