表格/长表格/表格的布局

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了表格/长表格/表格的布局相关的知识,希望对你有一定的参考价值。

参考技术A html中,使用table标签来创建一个表格

在table标签中使用tr来表示表格中的一行,有几行就有几对tr

在tr中需要使用td来创建一个单元格,有几个单元格就有几个td

....................................................................................................................................

 rowspan用来设置纵向的合并单元格 

....................................................................................................................................

 colspan横向的合并单元格 

....................................................................................................................................

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>表格</title>

</head>

<body>

<!-- 在HTML中,使用table标签来创建一个表格 -->

<table border="1" width="40%" align="center">

<!-- 在table标签中使用tr来表示表格中的一行,有几行就有几对tr -->

<tr>

<!-- 在tr中需要使用td来创建一个单元格,有几个单元格就有几个td -->

<td>A1</td>

<td>A2</td>

<td>A3</td>

<td>A4</td>

</tr>

<tr>

<td>B1</td>

<td>B2</td>

<td>B3</td>

<!-- rowspan用来设置纵向的合并单元格 -->

<td rowspan="2">B4</td>

</tr>

<tr>

<td>C1</td>

<td>C2</td>

<td>C3</td>

</tr>

<tr>

<td>D1</td>

<td>D2</td>

<!-- colspan横向的合并单元格 -->

<td colspan="2">D3</td>

</tr>

</table>

</body>

</html>

............................................................................................................................................................................

table和td边框之间默认有一个距离,通过border-spacing属性可以设置这个距离

......................................................................................................................................

border-collapse可以用来设置表格的边框合并

如果设置了边框合并,则border-spacing自动失效

...............................................................................................................................................................................

设置隔行变色

...........................................................................................................................................................................

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>表格</title>

<style type="text/css">

table

/*设置表格的宽度*/

width: 300px;

/*居中*/

margin: 0 auto;

/*边框*/

            /*border:1px solid black;*/

            /*table和td边框之间默认有一个距离,通过border-spacing属性可以设置这个距离*/

            border-spacing: 10px;

            /*

            border-collapse可以用来设置表格的边框合并

            如果设置了边框合并,则border-spacing自动失效

            */

            border-collapse: collapse;

            /*设置背景样式*/

/*background-color: #bfa;*/



/*设置边框*/

th, td

border: 1px solid black;



/*设置隔行变色*/

tbody > tr:nth-child(even)

background-color: #bfa;



/*鼠标移入到tr以后,改变颜色*/

tr:hover

background-color: yellow;



</style>

</head>

<body>

<table>

<tr>

<!--

可以使用th标签来表示表头中的内容,

它的用法和td一样,不同的是它会有一些默认效果

-->

<th>学号</th>

<th>姓名</th>

<th>性别</th>

<th>住址</th>

</tr>

<tr>

<td>1</td>

<td>孙悟空</td>

<td>男</td>

<td>花果山</td>

</tr>

<tr>

<td>2</td>

<td>猪八戒</td>

<td>男</td>

<td>高老庄</td>

</tr>

<tr>

<td>3</td>

<td>沙和尚</td>

<td>男</td>

<td>流沙河</td>

</tr>

<tr>

<td>4</td>

<td>唐僧</td>

<td>男</td>

<td>女儿国</td>

</tr>

<tr>

<td>1</td>

<td>孙悟空</td>

<td>男</td>

<td>花果山</td>

</tr>

<tr>

<td>2</td>

<td>猪八戒</td>

<td>男</td>

<td>高老庄</td>

</tr>

<tr>

<td>3</td>

<td>沙和尚</td>

<td>男</td>

<td>流沙河</td>

</tr>

<tr>

<td>4</td>

<td>唐僧</td>

<td>男</td>

<td>女儿国</td>

</tr>

<tr>

<td>1</td>

<td>孙悟空</td>

<td>男</td>

<td>花果山</td>

</tr>

<tr>

<td>2</td>

<td>猪八戒</td>

<td>男</td>

<td>高老庄</td>

</tr>

<tr>

<td>3</td>

<td>沙和尚</td>

<td>男</td>

<td>流沙河</td>

</tr>

<tr>

<td>4</td>

<td>唐僧</td>

<td>男</td>

<td>女儿国</td>

</tr>

<tr>

<td>1</td>

<td>孙悟空</td>

<td>男</td>

<td>花果山</td>

</tr>

<tr>

<td>2</td>

<td>猪八戒</td>

<td>男</td>

<td>高老庄</td>

</tr>

<tr>

<td>3</td>

<td>沙和尚</td>

<td>男</td>

<td>流沙河</td>

</tr>

<tr>

<td>4</td>

<td>唐僧</td>

<td>男</td>

<td>女儿国</td>

</tr>

<tr>

<td>1</td>

<td>孙悟空</td>

<td>男</td>

<td>花果山</td>

</tr>

<tr>

<td>2</td>

<td>猪八戒</td>

<td>男</td>

<td>高老庄</td>

</tr>

<tr>

<td>3</td>

<td>沙和尚</td>

<td>男</td>

<td>流沙河</td>

</tr>

<tr>

<td>4</td>

<td>唐僧</td>

<td>男</td>

<td>女儿国</td>

</tr>

<tr>

<td>1</td>

<td>孙悟空</td>

<td>男</td>

<td>花果山</td>

</tr>

<tr>

<td>2</td>

<td>猪八戒</td>

<td>男</td>

<td>高老庄</td>

</tr>

<tr>

<td>3</td>

<td>沙和尚</td>

<td>男</td>

<td>流沙河</td>

</tr>

<tr>

<td>4</td>

<td>唐僧</td>

<td>男</td>

<td>女儿国</td>

</tr>

</table>

</body>

</html>

...........................................................................................................................................................................

有一些情况下表格是非常的长的,这时就需要将表格分为三个部分,表头,表格的主体,表格底部

在HTML中为我们提供了三个标签:

这三个标签的作用,就来区分表格的不同的部分,他们都是table的子标签,都需要直接写到table中,tr需要写在这些标签当中

如果表格中没有写tbody,浏览器会自动在表格中添加tbody

并且将所有的tr都放到tbody中,所以注意tr并不是table的子元素,而是tbody的子元素

通过table > tr 无法选中行 需要通过tbody > tr

...........................................................................................................................................................................

以前表格更多的情况实际上是用来对页面进行布局的,但是这种方式早已被CSS所淘汰了

表格的列数由td最多的那行决定

表格是可以嵌套,可以在td中在放置一个表格

.............................................................................................................................

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>表格的布局</title>

</head>

<body>

<table border="1" width="100%">

<tr height="100px">

<td colspan="2"></td>

</tr>

<tr height="400px">

<td width="20%"></td>

<td width="80%">

<table border="1" width="100%" height="100%">

<tr>

<td></td>

</tr>

<tr>

<td></td>

</tr>

</table>

</td>

</tr>

<tr height="100px">

<td colspan="2"></td>

</tr>

</table>

</body>

</html>

table-layout

table  table-layout:fixed; 
tableLayout 属性用来显示表格单元格、行、列的算法规则。
技术图片

固定表格布局:

固定表格布局与自动表格布局相比,允许浏览器更快地对表格进行布局。

在固定表格布局中,水平布局仅取决于表格宽度、列宽度、表格边框宽度、单元格间距,而与单元格的内容无关。

通过使用固定表格布局,用户代理在接收到第一行后就可以显示表格。

自动表格布局:

在自动表格布局中,列的宽度是由列单元格中没有折行的最宽的内容设定的。

此算法有时会较慢,这是由于它需要在确定最终的布局之前访问表格中所有的内容。

说明

该属性指定了完成表布局时所用的布局算法。固定布局算法比较快,但是不太灵活,而自动算法比较慢,不过更能反映传统的 HTML 表。

 

以上是关于表格/长表格/表格的布局的主要内容,如果未能解决你的问题,请参考以下文章

为小型显示器显示彼此下方的表格列(响应式布局)

python pandas 长表格转换为宽表格/宽表格转换为长表格

如何使用 Bootstrap “row” 和 “col-*-*” 转换基于表格的布局

iOS 如何使用两个固定部分和一个动态表格视图进行布局?

网页表格布局缺点

IE11上表格单元格内绝对位置的奇怪行为