Table布局

<table>最常用的也是最正确的使用方法是制作表格,由于其对占据的空间有着划分的作用,便可以使用<table>来布局。

实例

实现一个简单的布局,将表格的bordercellpaddingcellspacing全部设置为0,表格的边框和间距就不占有页面空间,它只起到划分空间的作用,如果布局复杂,可以在单元格中再嵌套表格,单元格中的元素或者嵌套的表格用alignvalign设置对齐方式。要注意的是,在HTML5标准中,<table>alignbgcolorcellpaddingcellspacingframerulessummarywidth属性皆已不再支持,由CSS设置相关属性来呈现效果。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>TABLE布局</title>
</head>
<body> <table border="0" style="width: 100%;">
<tr>
<td style="width: 200px;">导航栏</td>
<td>内容</th>
</tr>
</table> </body>
</html>

问题

使用<table>来布局绝对不是一个好的解决方案,对于布局方案首选Flex布局,稍微复杂的布局可以选择Grid布局方案,<table>本身是为呈现表格化的数据而设计的,如果使用<table>来呈现数据表格是完全没有问题的。

  • <table>要比其它html标记占更多的字节,代码的复杂度会大大提升。
  • <table>会阻塞浏览器渲染引擎的渲染顺序,<table>是整体载入后才开始显示的,没有加载完毕前,<table>为一片空白,而<div>等标签可以逐行渲染,一边加载一边显示。
  • <table>经常需要多个关口,因为<table>可以影响在它们之前已经进入的DOM元素的显示的元素。假设因为表格最后一个单元格的内容过宽而导致纵列大小完全改变,这会造成浏览器的回流从而引发渲染性能问题。
  • <table>里显示图片时有可能需要你把单个、有逻辑性的图片切成多个图,这个主要看需求,<table>中进行单元格合并操作也是可行的方案。
  • <table>会影响其单元格内部的某些布局属性的生效。
  • <table>的各种属性逐渐不受支持,需要使用CSS控制显示相应效果。
  • <table>的语义是数据表格,使用<table>来布局不利于SEO
  • 若布局较为复杂,则可能造成多层<table>嵌套,代码嵌套过多表现的过于复杂。

display

倘若需要类似于表格的布局,可以使用display: table;来呈现,displaytable属性值只是声明了某些元素在浏览器中的样式,其并不包含语义,他的属性基本能够对应<table>系列标签,并且还能将缺少的表格元素会被浏览器以匿名方式创建,CSS2.1规范中写道:CSS2.1表格模型中的元素,可能不会全部包含在除HTML之外的文档语言中。这时,那些“丢失”的元素会被模拟出来,从而使得表格模型能够正常工作。所有的表格元素将会自动在自身周围生成所需的匿名table对象,使其符合table/inline-tabletable-rowtable-cell的三层嵌套关系。

  • table类似<table>:此元素会作为块级表格来显示,表格前后带有换行符。
  • inline-table类似<table>:此元素会作为内联表格来显示,表格前后没有换行符。
  • table-header-group类似<thead>:此元素会作为一个或多个行的分组来显示。
  • table-footer-group类似<tfoot>:此元素会作为一个或多个行的分组来显示。
  • table-row类似<tr>:此元素会作为一个表格行显示。
  • table-row-group类似<tbody>:此元素会作为一个或多个行的分组来显示。
  • table-column类似<col>:此元素会作为一个单元格列显示。
  • table-column-group类似<colgroup>:此元素会作为一个或多个列的分组来显示。
  • table-cell类似<td><th>:此元素会作为一个表格单元格显示。
  • table-caption类似<caption>:此元素会作为一个表格标题显示。

每日一题

https://github.com/WindrunnerMax/EveryDay

参考

https://www.cnblogs.com/mguo/p/3414118.html
https://www.cnblogs.com/cowboybusy/p/10530547.html
https://www.html5tricks.com/why-not-table-layout.html

Table布局的更多相关文章

  1. table布局, td内部元素溢出边界问题。 (已解决)

    今天,我尝试用table布局有多个输入需要提交的页面, 为了使输入元素占满td,我对其宽度设置为100%, 结果text输入元素溢出td, 具体情况如下: 解决办法是对td样式设置为overflow: ...

  2. 日历控件table布局

    作为初学者,一开始就接触div+css ,所以说实话,我并不怎么喜欢table布局,一般逃避. 先上这次的效果图: 看到这个图,第一次用table布局没实现,原因是给tr加下边框失效.当时没找到原因, ...

  3. css table 布局

    使用CSS表格 CSS表格能够解决所有那些我们在使用绝对定位和浮动定位进行多列布局时所遇到的问题.例如,“display:table;”的CSS声明能够让一个HTML元素和它的子节点像table元素一 ...

  4. div+css与table布局

    1:速度和加载方式方面的区别 div 的加载方式是即读即加载,遇到 <div> 没有遇到 </div> 的时候一样加载 div 中的内容,读多少加载多少:table 的加载方式 ...

  5. HTML中的table布局

    <table width="100" height="50" border="1" bgcolor="blue"& ...

  6. HTML学习笔记 div布局及table布局案例 第三节 (原创)参考使用表

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. 网页设计——5.table布局

    今天做一个大的页面,主要是对table布局的理解: 代码: <table cellspacing=0 border=1 style="bordercolor:#C0C0C0;" ...

  8. 关于table布局的推荐使用原因

    一.关于table布局的性能 1.table标签比其他html标签占用更多字节,导致下载时间延迟,占用服务器更多的流量资源: 2.table会阻碍浏览器渲染引擎的渲染顺序,导致页面生成的延迟,造成不良 ...

  9. html页面布局之table布局:

    table布局: table来做整体页面的布局,布局技巧归纳如下: (1)按照设计图的尺寸设置表格的宽高以及单元格的宽高 (2)将表格的border.cellpadding.cellspacing全部 ...

  10. table布局与div布局

      DIV与TABLE本身并不存在什么优缺点,所谓web标准只是推荐的是正确的使用标签,好比说:DIV用于布局,而TABLE则本来就是转二维数据的.让TABLE做该做的事,并不是说页面里不出现TABL ...

随机推荐

  1. 【SHELL】命令补全

    # 指定文件 dodo_path=/home/skull/work/scripts/dodo echo "hello skull" ## COMP_WORDS 是一个 bash 内 ...

  2. 【FreeRTOS】任务调度

    启动调度器接口,主要是创建空闲任务和定时器任务以及执行特定架构的启动调度器接口 // FreeRTOS\Source\tasks.c void vTaskStartScheduler( void ) ...

  3. ONVIF网络摄像头(IPC)客户端开发—RTSP RTCP RTP加载AAC音频流

    前言: RTSP,RTCP,RTP一般是一起使用,在FFmpeg和live555这些库中,它们为了更好的适用性,所以实现起来非常复杂,直接查看FFmpeg和Live555源代码来熟悉这些协议非常吃力, ...

  4. [转帖]Nacos使用2.0.1版本启动出现9848端口错误的解决方式(亲测有效)

    目录 一.背景 二.报错如下 三.报错原因 四.解决方式 一.背景 nacos服务端和客户端都是 2.x版本. centos7使用原始安装nacos单机版,没有使用docker安装naocs集群. 二 ...

  5. [转帖]jemalloc 性能测试

    https://wenfh2020.com/2020/07/30/jemalloc/   jemalloc 是一个优秀的内存分配器,通过与系统默认的内存分配器进行比较:jemalloc 内存分配性能比 ...

  6. [转帖]linux 部署jmeter&报错处理

    一.linux 安装jdk Java Downloads | Oracle 二. linux上传jmeter 2.1 上传jmeter jmeter 下载地址: Apache JMeter - Dow ...

  7. 【转帖】Linux查看二进制文件:一招制敌(linux二进制查看文件)

    https://www.dbs724.com/146055.html 一招制敌:学会Linux查看二进制文件 在Linux操作系统中,二进制文件是一种常见的文件类型.如果你想深入了解一个二进制文件,可 ...

  8. node使用nodemailer发送邮件

    安装模块 npm install nodemailer 代码 const nodemailer = require('nodemailer'); // 查找到有关QQ邮箱的相关信息在 /node_mo ...

  9. linux服务器cup100%问题排查

    一.出现问题在发现公司门禁服务无法开门的第一时间,去线上服务器上查看了一下进程的运行情况,具体运行如下: 第一次在查看的时候发现并没有我需要的服务entranceguard进程(图片是后续截图的) 二 ...

  10. 分页sql大全

    一.排除Top分页法(自命名,非规范) 思想:所谓"排除Top分页",主要依靠"排除"和Top这个两大核心步骤.首先查询当前页码之前的数据,然后将该数据从总数据 ...