近期公司让我修改一些之前的table标签写的页面,感觉对table相关的标签不是太熟悉,于是专门整理一下:

1、如果给td标签设置百分比宽度,比如有10列内容,我们却设置了每个单元格是30%的宽度,会是这样的效果,(单元格会紧着前面的达标宽度,后面的自适应)

那么如果给单元格设置固定宽度呢?(目前我在table外层套了个div,宽度为600px,table的宽度为100%)

我先在给每个单元格设置宽度为60px;

效果是每个单元格的宽度是平均分的

如果给单元格设置30px;(单元格依然是平均分的,设置的小宽度并没有起作用)

然后,将table标签的宽度设置为300px或则50%(外层元素为600px);可见td的宽度还是平均分的,无论设置50px还是10px,效果都是平均分的;

从此可以得出结论,在td元素上设置固定宽度(px之类)的宽度是不生效的,设置百分比宽度会紧着达标。

那么我们经常会遇到这样的需求,要求自定义表格宽度,该怎么办呢,我们可以在单元格中都套一个div元素,

然后给这个div元素设置固定宽度,就可以把对应列的单元格撑开了,然后剩余的单元格还会按照剩余的宽度自适应宽度

代码如下:

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>table</title>
</head>
<style>
td{
vertical-align: middle;
}
th{
vertical-align: middle;
}
.itd{
width:30px;
background: pink;
}
</style>
<body>
<div style="text-align:center;font-size:100px;font-weight:bold;">
其它内容
</div> <div style="width:600px;margin:50px auto;border:1px solid red;"> <table border="1" style="width:100%;">
<th align="center"><div class="itd">标题1</div></th>
<th align="center"><div class="itd">标题2</div></th>
<th align="center"><div class="itd">标题3</div></th>
<th align="center"><div class="itd">标题4</div></th>
<th align="center"><div class="itd">标题5</div></th>
<th align="center"><div class="itd">标题6</div></th>
<th align="center"><div class="itd">标题7</div></th>
<th align="center"><div class="itd">标题8</div></th>
<th align="center"><div class="itd">标题9</div></th>
<th align="center"><div class="itd">标题1哈啊啊阿</0</th>
<tr>
<td align="left"><div class="itd" style="width:100px;">单元格</div></td>
<td align="center"><div class="itd" >单元格</div></td>
<td align="center"><div class="itd">单元格</div></td>
<td align="center"><div class="itd" style="width:100px;">单元格</div></td>
<td align="center"><div class="itd">单元格</div></td>
<td align="center"><div class="itd">单元格</div></td>
<td align="center"><div class="itd">单元格</div></td>
<td align="center"><div class="itd">单元格</div></td>
<td align="center"><div class="itd">单元格</div></td>
<td align="center"><div class="itd">单元格</div></td>
</tr> </table> </div>
</body>
</html>

当然,如果我们设置的单元格的宽度,超过了table的宽度,那么内容就会从右边溢出,

这个没有办法,这个需要我们设计布局,不能让单元格的总宽度超出table的宽度!!

再来说一下,合并单元格colspan,和rowspan属性,这是在td或th标签上加的

下面来实验一下:

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>table</title>
</head>
<style>
td{
vertical-align: middle;
}
th{
vertical-align: middle;
}
.itd{
width:30px;
background: pink;
}
</style>
<body>
<div style="text-align:center;font-size:100px;font-weight:bold;">
其它内容
</div> <div style="width:600px;margin:50px auto;border:1px solid red;"> <table border="1" style="width:100%;">
<th align="center" colspan="2"><div class="itd">标题1</div></th>
<th align="center"><div class="itd">标题3</div></th>
<th align="center" rowspan="2"><div class="itd">标题4</div></th>
<th align="center"><div class="itd">标题5</div></th>
<th align="center"><div class="itd">标题6</div></th>
<th align="center"><div class="itd">标题7</div></th>
<th align="center"><div class="itd">标题8</div></th>
<th align="center"><div class="itd">标题9</div></th>
<th align="center"><div class="itd">标题1哈啊啊阿</0</th>
<tr>
<td align="left"><div class="itd" style="width:100px;">单元格</div></td>
<td align="center"><div class="itd" >单元格</div></td>
<td align="center"><div class="itd">单元格</div></td>
<td align="center"><div class="itd" style="width:100px;">单元格</div></td>
<td align="center"><div class="itd">单元格</div></td>
<td align="center"><div class="itd">单元格</div></td>
<td align="center"><div class="itd">单元格</div></td>
<td align="center"><div class="itd">单元格</div></td>
<td align="center"><div class="itd">单元格</div></td>
</tr> </table> </div>
</body>
</html>

效果

以上的操作几乎就能满足日常开发了

下面来简单总结一下表格的布局操作

1、表格中单元格的宽度是自动平均分配宽度的,如果想调整其中的某一列的宽度,在td中套一个div元素,给这个div设置宽度,将td撑开(设置td的宽度无效)

2、单元格的总宽度不能超出table的宽度,否则内容会向右溢出,所以布局时一定要设计好。

3、table的border属性有两个值,1或0,设置1,table和单元格都会出现边框,设置为0,table和单元格都没有边框,如果想设置table的边框,我们可以给table标签单独加css样式,

  想给td加边框,可以单独给td加css样式。

4、控制th和td中的元素上下对齐,注意是元素上下对齐,可以给th或td加vertical-align:top/middle/bottom;

5、控制th和td中的元素左右对齐,注意也是元素左右对齐,可以给th或td的元素上加align属性,值为left/center/right;

6、合并单元格,用rowspan=“2”或colspan="数值",一定要注意,若果有合并单元格存在,一定要注意单元格的个数,否则会多出单元格

原生table表格的使用的更多相关文章

  1. 原生js封装table表格操作,获取任意行列td,任意单行单列方法

    V1.001更新增加findTable-min.js 本次更新,优化了代码性能方面,增加了部分新功能,可以获取多个table表格批量操作. 考虑到本人后面的项目中可能涉及到大量的表格操作,提前先封了 ...

  2. 用echartsjs 实现散点图与table表格双向交互,以及实现echarts取自于table数据,和自定义echarts提示内容

    本人研究echarts已经有一段时间了,今天就分享几个关于echarts的小技巧.虽然看起来简单,但做起来却很繁琐,不过实用性倒是很好. 在一个大的页面中,左边为table表格,右边为echarts的 ...

  3. 原生 table css实现操作按钮固定右侧及底部滚动 IE不会卡死

    需求的表格比较复杂(各种合并新增删除),elementUi的table组件无法满足需求,故而写了原生table,且与其他用了table组件的表格保持一致. 贴一下简单的代码,只实现操作按钮固定右侧以及 ...

  4. [转]CSS如何设置html table表格边框样式

    原文地址:http://www.divcss5.com/wenji/w503.shtml 对table设置css样式边框,分为几种情况: 1.只对table设置边框 2.对td设置边框 3.对tabl ...

  5. JS组件系列——Bootstrap Table 表格行拖拽(二:多行拖拽)

    前言:前天刚写了篇JS组件系列——Bootstrap Table 表格行拖拽,今天接到新的需要,需要在之前表格行拖拽的基础上能够同时拖拽选中的多行.博主用了半天时间研究了下,效果是出来了,但是感觉不尽 ...

  6. MiniUI动态添加table表格

    本文将介绍一下,如何用Jquery MiniUi动态添加一行table表格 1.效果展示 ↓ 2.具体代码 <script type="text/javascript"> ...

  7. table表格宽度固定,同时td内容过长也不会被撑开

    table表格宽度固定,同时td内容过长也不会被撑开,设置如下css: table{table-layout:fixed;word-break:break-all;}

  8. Bootstrap Table表格一直加载(load)不了数据-解决办法

    bootstrap-table是一个基于Bootstrap风格的强大的表格插件神器,官网:http://bootstrap-table.wenzhixin.net.cn/zh-cn/ 这里列出遇到的一 ...

  9. [js开源组件开发]table表格组件

    table表格组件 表格的渲染组件,demo请点击http://lovewebgames.com/jsmodule/table.html,git源码请点击https://github.com/tian ...

随机推荐

  1. CentOS7 安装 Git

    环境: 系统版本:CentOS 7.5 Git 版本:2.20.1 一.安装 Git 1.下载编译工具 $ yum -y groupinstall "Development Tools&qu ...

  2. html启动本地.exe文件

    之前没有了解这个内容,还是一个小伙伴在面试中遇到的一个题目,感觉挺有意思就研究了一下这个东西到底是怎么用的.搜了一下解决方法,是添加注册表,自己运行了可以使用 第一步:首先打开注册表,方法是 win+ ...

  3. 多进程,多线程,使用sqlalchemy 创建引擎(单例模式),闭包装饰器承载数据库会话,装饰模型类的类方法

    python 多进程,多线程,使用 sqlalchemy 对数据库进行操作 创建引擎 & 获取数据库会话: 使用类的方式,然后在对象方法中去创建数据库引擎(使用单例,确保只创建一个对象,方法里 ...

  4. 0.b概述

    一.计算机与算法 计算 = 信息处理 计算模型 = 计算机 = 信息处理工具 算法:特定计算模型下,解决特定问题的指令序列  要素:输入 输出 正确性 确定性 可行性 有穷性 好算法:正确 健壮 可读 ...

  5. 数据结构之队列(queue)

    队列介绍 1.队列是一个有序列表,可以用数组或是链表来实现. 2.遵循先入先出的原则.即:先存入队列的数据,要先取出.后存入的要后取出. 应用场景 比如某某银行叫号系统: 数组模拟队列 队列本身是有序 ...

  6. glance

    第二篇glance— 镜像服务 一.glance介绍:              Glance是Openstack项目中负责镜像管理的模块,其功能包括虚拟机镜像的查找.注册和检索等. Glance提供 ...

  7. Extjs 兼容IE8常见问题及解决方法

    1. 在IE8中整个页面都打不开,一般情况是: 页面组件中最后一个属性出现了逗号 没有多余的逗号,就很有可能是组件中没有设置renderTo:Ext.getBody(); 2. 页面按钮颜色失效 自定 ...

  8. 1.JUC锁的一些概念

    原文链接:http://blog.csdn.net/zteny/article/details/54859228 接下来的几篇文章都转自这里,冒犯之处,多多包涵 原子性: 在看原子性之前,我们先看看什 ...

  9. cmd中for的用法

    在cmd窗口输入for /?后的原文,被我自己“翻译”了一下,更像人话了. 推荐去https://www.cnblogs.com/cbugs/p/8992059.html这篇部落格里去看看,讲的更好. ...

  10. Linux命令——mesg

    参考:图解Linux命令之--mesg命令 Linux mesg命令 前言 在看一个脚本~/.profile 的时候发现了mesg命令以及一个奇怪用法 ~/.profile # ~/.profile: ...