作为前端开发工程师 , 布局方式有多种 , 针对不同的情况有不一样的处理 , 但是很多初学的同学都不知道这些情况 , 那么我们今天就来说说 , 那些前端开发工程师不可不知的5种布局方式!
文章插图
一、静态布局(static layout)即传统Web设计 , 网页上的所有元素的尺寸一律使用px作为单位 。
文章插图
1.布局特点
不管浏览器尺寸具体是多少 , 网页布局始终按照最初写代码时的布局来显示 。常规的pc的网站都是静态(定宽度)布局的 , 也就是设置了min-width , 这样的话 , 如果小于这个宽度就会出现滚动条 , 如果大于这个宽度则内容居中外加背景 , 这种设计常见于pc端 。
2.设计方法
PC:居中布局 , 所有样式使用绝对宽度/高度(px) , 设计一个Layout , 在屏幕宽高有调整时 , 使用横向和竖向的滚动条来查阅被遮掩部分 。
移动设备:另外建立移动网站 , 单独设计一个布局 , 使用不同的域名如wap.或m. 。
优点:这种布局方式对设计师和css编写者来说都是最简单的 , 亦没有兼容性问题 。
缺点:显而易见 , 即不能根据用户的屏幕尺寸做出不同的表现 。当前 , 大部分门户网站、大部分企业的PC宣传站点都采用了这种布局方式 。固定像素尺寸的网页是匹配固定像素尺寸显示器的最简单办法 。但这种方法不是一种完全兼容未来网页的制作方法 , 我们需要一些适应未知设备的方法 。
二、流式布局(Liquid Layout)流式布局(Liquid)的特点(也叫"Fluid") 是页面元素的宽度按照屏幕分辨率进行适配调整 , 但整体布局不变 。代表作栅栏系统(网格系统) 。
网页中主要的划分区域的尺寸使用百分数(搭配min-*、max-*属性使用) , 例如 , 设置网页主体的宽度为80% , min-width为960px 。图片也作类似处理(width:100%, max-width一般设定为图片本身的尺寸 , 防止被拉伸而失真) 。
1. 布局特点
屏幕分辨率变化时 , 页面里元素的大小会变化而但布局不变 。【这就导致如果屏幕太大或者太小都会导致元素无法正常显示 。
2. 设计方法
使用%百分比定义宽度 , 高度大都是用px来固定住 , 可以根据可视区域 (viewport) 和父元素的实时尺寸进行调整 , 尽可能的适应各种分辨率 。往往配合 max-width/min-width 等属性控制尺寸流动范围以免过大或者过小影响阅读 。
【前端开发工程师必会的5种网页布局方式】这种布局方式在Web前端开发的早期历史上 , 用来应对不同尺寸的PC屏幕(那时屏幕尺寸的差异不会太大) , 在当今的移动端开发也是常用布局方式 , 但缺点明显:主要的问题是如果屏幕尺度跨度太大 , 那么在相对其原始设计而言过小或过大的屏幕上不能正常显示 。因为宽度使用%百分比定义 , 但是高度和文字大小等大都是用px来固定 , 所以在大屏幕的手机下显示效果会变成有些页面元素宽度被拉的很长 , 但是高度、文字大小还是和原来一样(即 , 这些东西无法变得“流式”) , 显示非常不协调 。
三、自适应布局(Adaptive Layout)自适应布局的特点是分别为不同的屏幕分辨率定义布局 , 即创建多个静态布局 , 每个静态布局对应一个屏幕分辨率范围 。改变屏幕分辨率可以切换不同的静态局部(页面元素位置发生改变) , 但在每个静态布局中 , 页面元素不随窗口大小的调整发生变化 。可以把自适应布局看作是静态布局的一个系列 。
文章插图
1.布局特点
屏幕分辨率变化时 , 页面里面元素的位置会变化而大小不会变化 。
2.设计方法
使用 @media 媒体查询给不同尺寸和介质的设备切换不同的样式 。在优秀的响应范围设计下可以给适配范围内的设备最好的体验 , 在同一个设备下实际还是固定的布局 。
四、响应式布局(Responsive Layout)随着CSS3出现了媒体查询技术 , 又出现了响应式设计的概念 。响应式设计的目标是确保一个页面在所有终端上(各种尺寸的PC、手机、手表、冰箱的Web浏览器等等)都能显示出令人满意的效果 , 对CSS编写者而言 , 在实现上不拘泥于具体手法 , 但通常是糅合了流式布局+弹性布局 , 再搭配媒体查询技术使用 。——分别为不同的屏幕分辨率定义布局 , 同时 , 在每个布局中 , 应用流式布局的理念 , 即页面元素宽度随着窗口调整而自动适配 。即:创建多个流体式布局 , 分别对应一个屏幕分辨率范围 。可以把响应式布局看作是流式布局和自适应布局设计理念的融合 。
推荐阅读
- 手机设置的禁区!神秘的开发者选项你弄懂了吗
- 开发中经常用到的20个正则
- 作为网络工程师必须牢记的几个命令
- 互联网前端开发技术之JavaScript JSON语法详解
- 阿里的程序员常用的 15 款开发者工具
- 前端开发中Cookie详解
- 15款Java程序员必备的开发工具
- 百度智能小程序与微信小程序有什么不同?可以一起开发吗?
- 前端三大框架之React前世今生
- PHP后台支付的开发:微信支付和支付宝支付