一. 静态布局(static layout)

即传统的Web布局,网页上的所有元素尺寸一律使用px作为单位

1. 布局特点

不管浏览器尺寸具体是多少,网页布局始终按照最初代码的布局来显示。常规的pc网站都是静态(定宽度)布局的,也就是设置了min-width,这样的话,如果页面小于这个宽度就会出现滚动条;如果大于这个宽度则内容居中外加背景,这种设计常见于pc端。

2.设计方法

pc:居中布局,所有样式使用绝对宽度/高度(px),设计一个Layout,在屏幕宽高有调整时,使用横向和竖向的滚动条来查询被遮掩部分;

移动设备:另外建立移动网站,单独设计一个布局,使用不同的域名如wap.或m.。

在移动端开发中采用静态布局的两种方式
      (1)在viewport meta标签上设置width=320,页面的各个元素也采用px作为单位,通过用js动态修改标签的initial-scale使得页面等比缩放,从而刚好占满整个屏幕。
      (2)在viewport meta标签上设置content="width=640,user-scalable=no",页面的各个元素也采用px作为单位,由于640px超出了手机宽度,浏览器会自动缩小页面至刚好全屏。

优点:这种布局方式对设计师和CSS编写来说都是最简单的。
缺点:不能根据用户的屏幕尺寸做出不同的表现。

当前,大部分门户网站、大部分企业的pc宣传站点都采用了这种布局方式。固定像素尺寸的网页是匹配固定像素尺寸显示器的最简单办法。但这种方法不是一种完全兼容未来网页的制作方法,我们需要一些适应未知设备的方法。

二、流式布局(Liquid Layout)

流式布局的特点是页面元素的宽度按照屏幕分辨率进行适配调整,但是整体布局不变,代表栅格系统(网格系统)。网页中主要的划分区域尺寸使用百分数(搭配min-、max-属性使用)。例如,设置网页主体的宽度为80%,min-width为960px,图片也做类似处理(width:100%,max-width一般设为图片本身的尺寸,防止被拉伸而失真)。

1. 布局特点

屏幕分辨率变化时,页面里元素的大小会变化但布局不变。(这就导致如果屏幕太大或者太小都会导致元素无法正常显示)。

2. 设计方法

使用%百分比定义宽度,高度大都是用px来固定,可以根据可视区域(viewport)和父元素的实时尺寸进行调整,尽可能的适应各种分辨率。往往配合max-width/min-width等属性控制尺寸流动范围以免过大或者过小影响阅读。
这种布局方式在web前端开发的早期历史上,用来应对不同尺寸的pc屏幕(那时屏幕尺寸的差异不会太大),在当今的移动端开发也是常有的布局方式。但缺点明显:主要的问题是如果屏幕尺度跨度太大,那么在相对其原始设计而言过小或过大的屏幕上不能正常显示。因为宽度使用%百分比定义,但是宽度和文字大小都是用px固定,所以在大屏幕的手机下显示效果会变成有些页面元素宽度被拉的很长,但是高度、文字大小还是和原来一样(即,这些东西无法变得“流式”),显示非常不协调。

三、自适应布局(Adaptive Layout)

自适应布局的特点是分别为不同的屏幕分辨率定义布局,即创建多个静态布局,每个静态布局对应一屏幕分辨率范围。改变屏幕分辨率可以切换不同的静态布局(页面元素位置发生改变),但在每个静态布局中,页面也暗示不随窗口大小的调整发生变化。可以把自适应布局看作是静态布局的一个系列。

1. 布局特点
      屏幕分辨率发生变化时,页面里面的元素位置会变化而大小不会变化。
2. 设计方法
      使用@media媒体查询给不同尺寸和介质的设备切换不同的样式。在优秀的响应范围设计下可以给适配范围内的设备最好的体验,在同一个设备下实际还是固定布局。

四、响应式布局(Responsive Layout)

随着CSS3出现了媒体查询技术,又出现了响应式设计的概念。响应式设计的目标是确保一个页面在所有终端上(各种尺寸的pc、手机、手表、冰箱的web浏览器等等)都能显示出令人满意的效果,对css编写者而言,在现实上不拘泥于具体手法,但通常是糅合了流式布局+弹性布局,再搭配媒体查询技术使用。分别为不同的屏幕分辨率定义布局,同时,在每个布局中,应用流式布局的理念,即页面元素宽度随着页面窗口而自动适配。即:创建多个流体式布局,分别对应一个屏幕分辨率范围。可以把响应式布局看做是流式布局和自适应理念的融合。

1. 布局特点

每个屏幕分辨率下面会有一个布局样式,即元素位置和大小都会改变。

2. 设计方法

媒体查询+流式布局。通常使用@media媒体查询和网格系统(grid system)配合相对布局单位进行布局,实际上就是综合响应式、流动等上述技术通过CSS给单一网页不同设备返回不同样式的技术统称

优点:适用pc端和移动端。
缺点:(1)媒体查询是有限的,也就是可以枚举出来的,只能适应主流的宽高。(2)要匹配足够多的屏幕大小,工作量不小,设计也需要多个版本。

响应式与自适应的对比

响应式与自适应的原理是相似的,都是检测设备,根据不同的设备采用不同的css,而且css都是采用的百分比,而不是固定宽度。不同点是响应式的模板在不同的设备上看上去是不一样的,会随着设备的改变而改变展示样式,而自适应不会,所有的设备看起来都是一套模板,不过是长度或者图片变小了,不会根据设备采用不同的展示样式,流式就是采用了一些设置,当宽度大于多少时怎么展示,小于多少时展示,而且展示的方式像水流一样,一部分一部分的加载,静态的就是采用固定宽度。

流式布局是用于解决类似的设备不同分辨率之间的兼容(一般分辨率差异较少);响应式用于解决不同设备之间不同分辨率之间的兼容问题(一般是指PC、平板、手机等设备之间较大的分辨率差异)。

五、弹性布局(rem/em布局)

这类布局的特点是:包裹文字的各元素的尺寸采用em/rem做单位,而页面的主要划分区域的尺寸仍使用百分数或px做单位。早期浏览器不支持整页面按比例缩放,仅支持网页内文字尺寸的放大,这种情况下,使用rem/em做单位,可以使包裹文字的元素随着文字的缩放而缩放。

1. 布局特点

浏览器的默认字体高度一般为16px,即1rem:16px,但是1:16的比例计算不方便,为了使单位em/rem更直观,css编写者尝尝将页面根节点字体设为62.5%,比如选择用rem控制字体时,先需要设置根节点html的字体大小,因为浏览器默认字体大小是16px * 62.5% = 10px,这样1rem就是10px。
但是因为有些浏览器的默认不是16px,或者用户修改了浏览器默认的字体大小。如果我们将其设置为10px,一定会影响在这些浏览器上的效果,所以最好用绝大多数用户默认的16作为基数*62.5%得到我们需要的10px。

html{font-size:62.5%://  10 / 16 * 100% = 62.5%}
body{font-size:1.45rem;//  1.4 * 10px = 14px}

实际项目设置成font-size:62.5%可能会出现问题,因为chrome不支持小于12px的字体,计算小于12px的时候,会默认取12px计算,导致chrome的em/rem计算不准确。
针对这个现象,可以尝试设置html字体为100px,body修正为16px,这样0.1rem就是10px,而body的字体仍然是默认大小,不影响未设置大小的元素的默认字体大小。

html{font-size:100px;}
body{font-size:16px}

响应式和弹性布局之间的对比:

响应式布局:改变浏览器宽度,“布局”会随之变化,不是一成不变的,例如导航栏在大屏幕下是横排,在小屏幕下是竖排,在超小屏幕下隐藏为菜单。
      rem布局:改变浏览器宽度,页面所有元素的高度都等比例缩放,也就是大屏幕下导航栏是横的,小屏幕下还是横的,只不过变小了。

总结

  1. 如果只做pc端,那么静态布局是最好的选择;
  2. 如果做移动端,且涉及对高度和元素间距要求不高,那么弹性布局是最好的选择,一份css+一份js调节font-size搞定;
  3. 如果pc,移动要兼容,而且要求很高,那么响应式布局是最好的选择,前提是设计根据不同的宽度做不同的设计,响应式根据媒体查询做不同的布局。

前端常见的几种布局方式相关推荐

  1. [转]企业网站首页设计常见的6种布局方式

    在 群里和大家交流时,看到太多的网页设计师发布企业站的个人作品,设计中总是摆脱不了大框套小框的设计布局思路,不加思索的跳入单一的网页布局形式中,于是 就有了把企业站常用的页面布局方式总结一下的想法,让 ...

  2. 企业网站首页设计常见的6种布局方式

    转载自:http://www.wzsky.net/html/Website/Experience/120178.html 在群里和大家交流时,看到太多的网页设计师发布企业站的个人作品,设计中总是摆脱不 ...

  3. CSS常见的几种布局方式

    在看前端面试题的时候经常会看到css的布局方式,今天整理一下分享给大家. #单列布局 #两列自适应布局 #三栏布局(圣杯布局和双飞翼布局) 一.单列布局 常见的单列布局有两种: header.cont ...

  4. 前端常见的三种缓存方式

    一.http缓存 A.强缓存:Expires,Cache-Control B.协商缓存:Etag/If-None-Match.Last-Modified/If-Modified-Since 执行流程: ...

  5. layout布局_安卓最常见的几种布局

    Android中常用的5大布局方式有以下几种: 线性布局(LinearLayout):按照垂直或者水平方向布局的组件 帧布局(FrameLayout):组件从屏幕左上方布局组件 表格布局(TableL ...

  6. Android开发的之基本控件和详解四种布局方式

    Android中的控件的使用方式和iOS中控件的使用方式基本相同,都是事件驱动.给控件添加事件也有接口回调和委托代理的方式.今天这篇博客就总结一下Android中常用的基本控件以及布局方式.说到布局方 ...

  7. 聊聊后台5种常见的几种布局

    这里是IT修真院产品分享课,今天要分享的是 [聊聊后台5种常见的几种布局] 一.默认页面设为统计 调研的几个平台首页默认显示的都是welcome,估计大多数后台都没考虑到首页放什么,也不知道放什么(就 ...

  8. JS 跨域问题常见的五种解决方式

    JS 跨域问题常见的五种解决方式 一.什么是跨域? 要理解跨域问题,就先理解好概念.跨域问题是由于javascript语言安全限制中的同源策略造成的. 简单来说,同源策略是指一段脚本只能读取来自同一来 ...

  9. 【JS继承】常见的7种继承方式

     自我介绍:大家好,我是吉帅振的网络日志:微信公众号:吉帅振的网络日志:前端开发工程师,工作4年,去过上海.北京,经历创业公司,进过大厂,现在郑州敲代码. JS继承专栏 1[JS继承]什么是JS继承? ...

  10. c语言实现路由功能,前端路由的两种实现方式,内附详细代码

    一.前端路由介绍 前端路由主要应用在SPA(单页面开发)项目中.在无刷新的情况下,根据不同的URL来显示不同的组件或者内容. 前端路由的实现原理 : hash值 + onhashchange事件 hi ...

最新文章

  1. MySQL每秒57万的写入,带你装逼,带你飞 !!
  2. 迷宫python_Python走迷宫,递归 - nixBlog
  3. css教程之列表属性
  4. redis是单线程的吗?为什么执行速度这么快?
  5. Python 文件读取与写入操作方法
  6. 时间相减得到小时数 java_【高中数学】错位相减公式求差比数列的和
  7. mysql 配置文件
  8. Scala报错:error: overloaded method value logInfo with alternatives
  9. 2012年最新75款免费的专业英文字体下载【下篇】
  10. iOS中使用URL Scheme进行App跳转
  11. Android中的异步处理技术之Thread
  12. 斗鱼TV Web API
  13. Java 中的十大排序算法
  14. DIV+CSS排版技巧
  15. 多幸运用计算机演奏的乐谱,多幸运钢琴简谱-数字双手-韩安旭
  16. 想知道手机配音软件哪个好用吗?一起来看看吧
  17. PCIe是如何工作的——How PCI Express Works
  18. 【LOJ2867】「IOI2018」高速公路收费
  19. spring源码之Mybatis扫描器
  20. android 仿微信录音,Android 模仿微信长按录音功能

热门文章

  1. 字符编码-- Unicode(1991年)
  2. 服务器系统能装cad吗,服务器主机用CAD画图吗
  3. WSO2流处理器相关学习(1)快速入门指南【转】
  4. Photoshop又来神器!人脸动态捕捉来了!
  5. mysql进销存表设计_数据库设计:数据库进销存管理系统(包含有仓库出库入库触发器)...
  6. vue.js 获取当前屏幕的宽度_js获取移动端屏幕高度和宽度等设备尺寸
  7. 【CPRI】(1)CPRI基本概念和相关术语
  8. win10 同步 android,Win10“你的手机应用更新:支持安卓屏幕镜像和通知同步
  9. Qpainter事件
  10. Paypal付款按钮变量列表