在web前端设计排版时我们可能会用到表格布局和div+CSS布局,但现在主要使用后者,为何?今天我们来谈一谈两者之间的发展和原理。

话不多说下面来干货

发展过程

上个世纪Web开发人员流行使用表格进行文档整体布局。因为当时大部分浏览器不支持CSS,而且大部分人不会CSS,且没有文档拆分设计,致使文档臃肿,到了上个世纪末大部分没有相关背景的人进入,对于那些没有相关背景的开发人员觉得表格布局简单,致使使用它的人更多。本世纪出出现了泡沫危机致使大部分非专业人士的推出,而剩下来的大神觉得css更具有优势,所以div+CSS就得以发展。

传统表格布局

传统表格布局利用了HTML中的表格元素设置参数以达到无边框特性,将网页中的各个元素按版式划分放入表格的各单元格中,从而实现复杂的排版组合。

特点

现在依然有网站在使用表格布局,表格布局使用方法简单,制作只要将内容按照行和列拆分,用表格组装起来即可实现设计版面布局。

如今我们对网站外观要求和体验的不断提高,开发人员用各种图片来装饰网页。由于一些大图会致使下载速度缓慢,所以一般我们将大图切分成若干个小图,使网页加载速度加快。下图所示为使用表格布局的页面和该页面的部分HTML代码。

网页效果

div+CSS

CSS布局是网页html通过div标签+css样式表代码开发制作的(html)网页的统称。

所有都元素都被看做是一个个盒子,它们占据一定空间,在其中有着特定的内容。我们可以通过调整盒子的边框和间距等参数来调节盒子的位置以及大小。页面是由大大小小许多盒子组成的,这些盒子互相之间彼此影响,因此,我们既需要理解每个盒子内部的机构,也需要理解盒子直接的关系以及互相的影响。

组成

盒子模型由content(内容)、border(边框)、padding(内边距)、margin(外边距)共4个部分组成。如下图:

一个盒子在页面上由“内容+内边距+外边距+边框”组成的,可以通过设定盒子的border、padding和margin来实现各种各样的排版效果。也不是所有用<div>定义的网页元素才是盒子,所有的网页元素都可以看做是盒子。网页上的表格、图片、文字等,从盒子模型的角度就是大大小小的盒子排列或嵌套在一起的。

总结

网页改版维护的维护

表格布局:复杂的表格设计使得设计不易,修改更复杂,最后生成的网页代码有许多冗余,还有许多没有任何意义的元素,文件量庞大,下载慢,解析速度也慢,维护和更新困难。

Div+CSS:可以把要展示的内容与其表现样式分开,对CSS文件进行修改,其他HTML文件中自动进行套用,不必在每个HTML文件中重复设置,减少设计者更多负担,修改页面更省时。

保持视觉的一致性:

DIV+CSS技术,方便统一网页风格,避免了不同区域或不同页面体现出的效果偏差。

页面载入得更快:

大部分页面代码写在了CSS当中,使页面体积容量更小。比表格嵌套的方式,DIV+CSS将页面独立成更多区域,打开页面时,逐层加载,而不像表格嵌套那样整个页面圈在一个大表格里,由此页面加载速度更加极速。

搜索引擎友程度高:

用表格进行网页布局的代码较多,搜索引擎要把多的代码去掉。而使用DIV+CSS布局设计网页,所有样式都在CSS里,正文代码得到极大的精简,也减少了HTML代码,正文就突出了,搜索程序能在更短的时间内爬完整个页面,搜索程序执行效率得到了提升。

如果有任何错误和纰漏,请联系我更正。

如果你有任何意见一定要联系告诉我,让我快速成长起来哟。

css中如何实现帧布局_浅谈web前端中的表格布局与CSS盒子布局相关推荐

  1. mysql declare与set的区别_浅谈MySQL存储过程中declare和set定义变量的区别

    在存储过程中常看到declare定义的变量和@set定义的变量.简单的来说,declare定义的类似是局部变量,@set定义的类似全局变量. 1.declare定义的变量类似java类中的局部变量,仅 ...

  2. python中if和elif的区别_浅谈对python中if、elif、else的误解

    今天下午在练习python时用了"if...if...else..."的分支结构,结果运行出来吓我一跳.原来我想当然的认为"if...if...else..." ...

  3. python中分支语句elif与else的区别_浅谈对python中if、elif、else的误解

    今天下午在练习python时用了"if...if...else..."的分支结构,结果运行出来吓我一跳.原来我想当然的认为"if...if...else..." ...

  4. java扫码枪键盘_浅谈在react中如何实现扫码枪输入

    触发原理 原理就是监听键盘输入,比如扫一个为6970596130126的69条形码,用扫码枪扫一下会在光标位置依次输出: 6 9 7 0 5 9 6 1 3 0 2 6 但这不是完整的,所以需要写一个 ...

  5. java 定时任务怎么关闭_浅谈springboot项目中定时任务如何优雅退出

    在一个springboot项目中需要跑定时任务处理批数据时,突然有个Kill命令或者一个Ctrl+C的命令,此时我们需要当批数据处理完毕后才允许定时任务关闭,也就是当定时任务结束时才允许Kill命令生 ...

  6. mysql存储过程set什么意思_浅谈MySQL存储过程中declare和set定义变量的区别

    在存储过程中常看到declare定义的变量和@set定义的变量.简单的来说,declare定义的类似是局部变量,@set定义的类似全局变量. 1.declare定义的变量类似java类中的局部变量,仅 ...

  7. java中修饰常量的事_浅谈java中的声明常量为什么要用static修饰

    今天定义一个类常量,想着也只有这个类可以用到,就没用static关键字修饰.结果sonar代码检查提示: Rename this field "PERSON_TYPE_USER" ...

  8. mysql创建存储过程意义_浅谈一下mySql中创建存储过程

    首先说一下为什么要使用存储过程,存储过程是在数据库中预编译的程序代码,其执行效率显然要比从程序端传过去的sql语句要高的多,这样既可以节省网络带宽,又可以加快sql的执行速度,可以很好的提高系统的性能 ...

  9. java设置绝对布局_浅谈Java绝对布局 原创

    在 swing 中,除了使用布局管理器之外还可以使用绝对布局.下面我们就来简单了解一下什么是绝对布局. 绝对布局,就是硬性指定组件在容器中的位置和大小,可以使用绝对坐标的方式来指定组件的位置. 使用绝 ...

最新文章

  1. R语言Logistic回归模型亚组分析森林图(forest plot)绘制
  2. JAVA获取系统相关信息
  3. C#对事务的代码封装
  4. win环境下,django+postgresql配置
  5. 解决ActionBar中不显示item的问题,item显示在overflow中
  6. axure 倒计时_AxureRP教程—模拟倒计时
  7. span里面插入文字
  8. 论文审稿人可以下岗了?CMU都做出论文审稿机器人了!
  9. 【Groonga】Groonga 简介
  10. 经纬度转换为三维坐标
  11. Hi,Let's Get Started,Mr Qu
  12. chrome frame节点 取_Chrome Frame插件解决IE浏览器兼容问题
  13. C++遇到错误蓝屏电脑代码底层分享!
  14. Excel表格添加下拉多选
  15. 洛谷P4052 [JSOI2007]文本生成器(AC自动机)
  16. 相机靶面尺寸详解+工业相机选型
  17. Kubernetes学习之污点
  18. 爬虫--初体验(获取二级网站)
  19. golang 基于文件的消息队列 ---> diskqueue
  20. Ubuntu安装谷歌拼音输入法/搜狗拼音输入法

热门文章

  1. linux cmake变量,linux – CMake错误:此项目中使用了以下变量,但它们设置为NOTFOUND...
  2. python怎么导入apscheduler,如何强制apscheduler将作业添加到作业存储?
  3. Foxmail怎么诊断邮件的状态
  4. 迈普路由器访问控制列表配置命令_如何选购企业路由器?选购企业路由器需注意什么...
  5. java用户角色权限管理 只显示姓_快递物流管理系统SSM,JQUERYEASYUI,MYSQL
  6. @ControllerAdvice实现优雅地处理异常
  7. php 邮件类库,[3.3]-扩展类库:基于PHPMailer的邮件发送 | PhalApi(π框架) - PHP轻量级开源接口框架 - 接口,从简单开始!...
  8. android x86_64 服务器运行,魔趣 android10 编译x86-64 运行模拟器
  9. java xms512m_安装版的tomcat设置JAVA_OPTS=-Xms128M -Xmx512M -XX:PermSize=128M -XX:MaxPermSize=512M...
  10. linux qt yuv,c – 如何使用Qt中的RGBA32数据将带有YUV数据...