固定布局(fixed layout)、流体布局(fluid layout)、弹性布局(elastic layout)、响应布局(responsive layout)理解和技巧归纳

关于web页面布局,首先简单了解一下固定布局(fixed layout)、流体布局(fluid layout)、弹性布局(elastic layout)、响应布局(responsive layout)和相应的使用技巧?

 

固定布局(fixed layout)

固定布局,例如豆瓣网,无论如何change浏览器的宽度,页面主体区域的宽度是固定不变了,里面的内容布局也是打死不动的

  1. 任意浏览器下的显示宽度都一样,对于图像、表单、视频等宽度固定的内容,潜在的冲突更少(设计师看到什么,用户看到的就是什么)。
  2. 不用设定min-width(最小宽度)和max-width(最大宽度),这两个属性并不被所有浏览器支持。
  3. 即使网页被设计成兼容最小屏幕分辨率800×600的大小,在大分辨率显示器下,内容仍然足够易读。

  1. 固定宽度的布局可能会给高分辨率屏幕用户带来巨大的页面空白,从而破坏“神圣比例”、“三分割法则”、整体平衡,乃至其他设计原则。
  2. 小屏幕上可能会出现水平滚动条,影响用户体验。
  3. 无缝材质拼图,纹样和其他连续图像需要针对大分辨率做出优化。
  4. 总体来说,固定宽度的可用性更低。

使用技巧:

  • 1024×768以及更高分辨率的屏幕选择960px作为网页内容主容器的像素宽度,还能有一点留白。而800×600分辨率下的主容器最佳显示宽度是760px,设置成这一宽度能够照顾到那10%,而较大屏幕上看起来也还不赖。
  • 固定宽度设计,务必保证主容器居中对齐,以保持平衡(一般利用margin: 0 auto;就可以了)。

 

 

流体布局(fluid layout)

流体布局,也称为自适应布局布局宽度使用了百分比宽度来适应不同屏幕分辨率,高度大都是用px来固定住。例如google analytics,当你change浏览器的宽度,显示区域也会如同水流般自适应于显示器的宽度显示(浏览器宽度变一点,web页面宽度也跟着变一点),主体结构布局不变。开发中一般通过调整内容区块的宽度来适应,或调整空白区域大小来适应不同分辨率

  1. 流动网页布局拥有更强的亲和力,因为它能根据客户端的情况自适应。
  2. 不同浏览器和屏幕分辨率下的额外空白量都差不多,更符合视觉吸引力要求。
  3. 如果设计得当,流动布局能避免在小屏幕上的水平滚动条。

  1. 设计师对客户端的显示效果更难以控制,由于他们使用特定大小的屏幕调试,也更不容易发现潜在问题。
  2. 图片、视频以及其他拥有固定宽度的内容不得不被设置上不同宽度,以配合不同的屏幕分辨率。
  3. 对于特别大的显示屏,内容不够多的话就会造成过量空白,破坏美感。
  4. 因为宽度使用%百分比定义,但是高度和文字大小等大都是用px来固定,所以在大屏幕的手机下显示效果会变成有些页面元素宽度被拉的很长,但是高度、文字大小还是和原来一样(即,这些东西无法变得“流式”),显示非常不协调

使用技巧:

  • 采用简单设计:应用到流动网页布局的图案和复杂技巧越少,其建立和维护也就越容易。同时也能更方便地适应不同屏幕分辨率。
  • min-width 和 max-width,可以用来为过大或过小屏幕的用户指定一个固定宽度。屏幕过小的时候,内容区块固定成指定宽度,屏幕下方也出现一个水平滚动条;屏幕过大的时候,内容也固定到最大宽度,以免延展得太开,影响文字的可读性。

 

 

弹性布局(elastic layout)

要点就在于使用单位em或rem来定义元素宽度em/rem则是相对于字体大小的单位宽度。它随着字体大小的变化而变化,反应用户对字体大小的设定。

  1. 如果合理运用,这种布局设计能带来非常友好的用户界面。目标效果是所有东西都能根据用户的偏好增大或缩小尺寸。
  2. 可以用于字体缩进text-indent;使用rem单位的弹性布局在移动端也很受欢迎;

  1. 尽管第一条“利”说得没错,弹性布局还是为可用性埋下了很多地雷。得需要十分的聪明才智和不断测试才能让布局适合所有用户。
  2. 这种布局比前述两种要难实现得多,可能那一小点的可用性并不值得你花这么多功夫。
  3. 由于这种布局的特殊性,有些弹性布局设计可能需要额外的样式表,并针对IE6做些特别的调整  ;
  4. REM支持的浏览器:Mozilla Firefox 3.6+、Apple Safari 5+、Google Chrome、IE9+和Opera11+。IE6-8无法支持

使用技巧:

  • 包裹文字的各元素的尺寸采用em/rem做单位,而页面的主要划分区域的尺寸仍使用百分数或px做单位(同「流式布局」或「静态/固定布局」)
  • 浏览器的默认字体高度一般为16px,即1em=1rem=16px,但是 1:16 的比例不方便计算,为了使单位em/rem更直观,CSS编写者常常将页面根节点字体设为62.5%,比如选择用rem控制字体时,先需要设置根节点html的字体大小,因为浏览器默认字体大小16px*62.5%=10px。这样1rem便是10px,方便了计算。。

注意:实际项目设置成 font-size: 62.5%可能会出现问题,如下

html {font-size: 62.5%;/*10 ÷ 16 × 100% = 62.5%*/}
body {font-size: 1.4rem;/*1.4 × 10px = 14px */}
h1 { font-size: 2.4rem;/*2.4 × 10px = 24px*/}

因为有些浏览器默认的不是16px,或者用户修改了浏览器默认的字体大小(因浏览器分辨率大小,视力,习惯等因素)。如果我们将其设置为10px,一定会影响在这些浏览器上的效果,所以最好用绝大多数用户默认的16作为基数 * 62.5% 得到我们需要的10px。

因为chrome不支持小于12px的字体,计算小于12px的时候,会默认取12px去计算,导致chrome的em/rem计算不准确。针对这个现象,可以尝试设置html字体为100px,body 修正为16px,这样 0.1rem 就是 10px,而body的字体仍然是默认大小,不影响未设置大小的元素的默认字体的大小。

    html {font-size: 625%;/*字体换算为1rem=100px*/}body {font-size:0.1rem;/*全文基础字体0.1rem = 10px */}h2 { font-size: 0.24rem;/*0.24 × 100px = 24px*/}

 

 

响应布局(responsive layout)

随着宽屏的不断普及,CSS3出现了@media媒体查询技术,又出现了响应式设计的概念。响应式设计的目标是确保一个页面在所有终端上(各种尺寸的PC、手机、手表、冰箱的Web浏览器等等)都能显示出令人满意的效果,对CSS编写者而言,在实现上不拘泥于具体手法,但通常是糅合了百分比流式布局+rem弹性布局,再搭配媒体查询技术使用。响应式几乎已经成为优秀页面布局的标准。

响应布局是浏览器的宽度满足某一个条件的时候,web页面的布局发生变化。这种变化往往不仅仅是web页面宽度的变化,还有主体结构布局的改变。例如导航栏在大屏幕下是横排,在小屏幕下是竖排,在超小屏幕下隐藏为菜单,也就是说如果有足够的耐心,在每一种屏幕下都应该有合理的布局,完美的效果。如京东商城的首页。

@media (min-width: 768px){ //>=768的设备 }
@media (min-width: 992px){ //>=992的设备 }

  1. 适应pc和移动端,如果足够耐心,效果完美

  1. 媒体查询是有限的,也就是可以枚举出来的,只能适应主流的宽高。
  2. 匹配足够多的屏幕大小,工作量不小,设计也需要多个版本

布局特点:屏幕分辨率变化时,页面里面元素的位置会变化而大小不会变化流式布局是用于解决类似的设备不同分辨率之间的兼容(一般分辨率差异较少);响应式是用于解决不同设备之间不同分辨率之间的兼容问题(一般是指PC,平板,手机等设备之间较大的分辨率差异)。

使用技巧:通常是糅合了百分比流式布局+rem弹性布局,再搭配媒体查询技术使用。——使用 @media 媒体查询给不同尺寸和介质的设备切换不同的样式,分别为不同的屏幕分辨率定义布局。同时,在每个布局中,主区域划分应用流式布局的理念,即页面元素宽度随着窗口调整而自动适配。

响应式布局具体实践看上一篇文章:https://blog.csdn.net/zhouzuoluo/article/details/95756442

 

 

选择何种布局方式

选择何种布局应该由网站的性质决定。权衡上述利弊,根据你的网站需求找到合适的解决方案,如以下选择:

1、如果只实现pc端简单设计,那么静态固定布局(定宽度)是最好的选择。

2、如果做移动端,且设计对高度和元素间距要求不高,那么弹性布局(rem+js)是最好的选择,一份css+一份js调节font-size搞定;

3、一些特定的界面可以使用主区域流动+侧边栏固定+一些弹性应用 来很好的实现。

4、如果pc,移动要兼容,而且要求很高那么响应式布局还是最好的选择,前提是设计根据不同的高宽做不同的设计,响应式根据媒体查询做不同的布局。

 

 

 

学习网址:
https://www.cnblogs.com/yanayana/p/7066948.html

https://www.cnblogs.com/MirageFox/p/6754791.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/553981.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

win7电脑0x000007b蓝屏怎么办

win7电脑0x000007b蓝屏怎么办?0x000007b蓝屏是什么意思?当电脑出现蓝屏,其蓝屏代码是0x000007b,通常是由于bios设置中的硬盘模式与当前系统不符合所造成。大家可以参考小编给出的本篇教程将模式调为“AHCI”,尝试解决。 1、重启…

整理软件行业职位介绍(PM,RD,FE,UE,UI,QA,OP,DBA,BRD,MRD, PRD,FSD等)、组织结构、职责

职位概览缩写 GM(General Manager)总经理 VP(Vice President)副总裁 FVP(First Vice President)第一副总裁 AVP(Assistant Vice President)副总裁助理 CEO(Chief Executive Officer)首席执行官,类似总经理、总裁,是企业的法人代表。 COO(Chief Ope…

谷歌浏览器怎么查看网页源代码 Chrome浏览器网页源代码查看技巧分享

凭借简单、高效的使用体验,谷歌开发的网页浏览器“Chrome”在国内也不乏粉丝,甚至一度被视为装机必备的软件之一。但其操作方式和界面设计,与国产浏览器略有不同!那么,谷歌浏览器要怎么查看网页源代码?让我们一起来了解一下。 方…

windows下mysql8.0-64的安装、完全卸载及注意事项(亲测),MySQL和SQL Server的简单区别

Windows 上安装 MySQL 1、现在zip安装包: 点击链接 https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.11-winx64.zip 下载 zip 包。最新版本可以在 MySQL 下载 中下载中查看。 点击 Download 按钮进入下载页面,点击下图中的 No thanks, just star…

vue中使用highCharts的drilldown钻取图、3D等图

<!-- 可以使用highcharts的CDN资源 --> <!-- 钻取图依赖jquery.js和highcharts.js ,有顺序要求 --> <script src"http://cdn.highcharts.com.cn/highcharts/highcharts.js"></script> <script src"http://cdn.highcharts.com.cn/…

vue-router进阶:路由使用归纳、路由导航守卫、导航守卫解析流程、

一、定义和理解 导航守卫的作用&#xff1a;vue-router 提供的导航守卫主要用来通过跳转或取消的方式守卫导航。 》》项目中应用场景举例&#xff1a;路由页面跳转时候进行登陆验证&#xff1b;路由跳转判断&#xff1b; 有多种机会植入路由导航过程中&#xff1a;全局路由, 单…

谷歌浏览器内存不足 Chrome浏览器内存释放技巧分享

谷歌Chrome浏览器内存占用过高的问题一直困扰着不少使用者&#xff0c;除了少用占用内存的扩展插件及控制打开的标签页数量外&#xff0c;还有不少方法可以解决这一问题!下面小编就来分享一个快速释放Chrome浏览器内存的小技巧&#xff0c;小伙伴们可不要错过了。 方法步骤 在…

ChatGPT/GPT4+AI绘图+论文写作+编程结合到底有多强大?带你详细了解

ChatGPT在论文写作与编程方面具备强大的能力。无论是进行代码生成、错误调试还是解决编程难题&#xff0c;ChatGPT都能为您提供实用且高质量的建议和指导&#xff0c;提高编程效率和准确性。此外&#xff0c;ChatGPT是一位出色的合作伙伴&#xff0c;可以为您提供论文写作的支持…

月亮的传说故事

古时候&#xff0c;有个地方夜晚总是漆黑一片&#xff0c;天空就像笼罩着一块黑布。因为在这里&#xff0c;月亮从来没有升起过&#xff0c;星星也不闪烁。其实在上帝创造世界时&#xff0c;晚上还是很明亮的。 有一次&#xff0c;有四个年轻人离开了这片国土&#xff0c;来到…

mockjs语法规范、设置mockjs拦截响应时间、Mock.Random占位符生成随机数据

首先回顾vue-cli项目中使用mockjs步骤&#xff1a; 1、安装mockjs、axios&#xff08;http请求库&#xff09;&#xff1b; cnpm install mockjs axios --save 2、在项目中新建一个mock.js文件&#xff0c;用于定义接口返回的数据&#xff1b; const Mock require(mockjs) …

vue-cli项目布署问题解决:空白页、静态资源文件404错误、refrenceError:promise未定义(部分浏览器不支持ES6语法)

&#xff08;前言&#xff1a;文章记录vue-cli项目打包使用IIS布署遇到的几个错误及解决方式&#xff09; 首先简单理解webpack打包&#xff1a; 个人理解&#xff1a;项目开发中我们构建 "低耦合高内聚" 的组件/模块来代码重用、降低项目复杂性&#xff0c;提升开发…

优酷视频APP的缓存视频在哪里

针对喜爱刷剧的网民&#xff0c;要是有空余就爱播放视频&#xff0c;但是视频会应用很多的总流量&#xff0c;这应该怎么办呢?我们可以在有Wifi的地区把视频缓存到手机里&#xff0c;随后在沒有wifi的地区看缓存文件的含有就可以了。下边就一起来看一下怎样缓存文件优酷吧。 …

转:javascript方法--bind()

javascript方法--bind() bind方法&#xff0c;顾名思义&#xff0c;就是绑定的意思&#xff0c;到底是怎么绑定然后怎么用呢&#xff0c;下面就来说说我对这个方法的理解。 语法 fun.bind(this,arg1,arg2,...) bind()方法会创建一个新的函数&#xff0c;称为绑定函数,fun方法…

win7系统每次开机都需要疑难解答的原因与解决方法

最近有些win7旗舰版的用户发现自己的电脑每次开机都无法正常连接网络&#xff0c;需要自己手动点击一下疑难解答才可以恢复正常连接&#xff0c;非常麻烦&#xff0c;那么Win7旗舰版系统每次开机都需要疑难解答怎么办呢?下面小编就给大家带来了win7系统每次开机都需要疑难解答…

Win7旗舰版禁止修改文件属性的设置方法

大家都知道文件有只读、隐藏和存档三个属性&#xff0c;但是属性默认是可以修改的&#xff0c;如果一不小心修改错误的话&#xff0c;就可能导致文件丢失、损坏、被隐藏等等。为了避免这些问题的发生&#xff0c;我们可以禁止修改文件属性来保护文件的安全&#xff0c;下面介绍…

npm error enoent:no such file or directory...are-we-there-yet ; package.json文件和node_modules模相互转化

vue-cli项目一段时间没有变动&#xff0c;几个星期后继续编辑安装 npm install vue-skeleton-webpack-plugin 插件时报错 npm error enoent:no such file or directory...are-we-there-yet 错误 产生错误的原因&#xff1a;This is still an active issue on Modulus. Ive fo…

简单地使用webpack进行打包,一些常见打包错误

本质上&#xff0c;webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler)。当 webpack 处理应用程序时&#xff0c;它会递归地构建一个依赖关系图(dependency graph)&#xff0c;其中包含应用程序需要的每个模块&#xff0c;然后将所有这些模块打包成一个或…

win7空文件夹删不掉的原因及解决方法

大家在清理系统垃圾的时候&#xff0c;会发现有些文件夹明明已经空了但是就是删不掉&#xff0c;时间长了电脑就会积累很多空的文件夹&#xff0c;拖慢电脑的运行速度。Win7系统中空文件夹删不掉怎么解决?就此问题&#xff0c;下面跟大家分析一win7空文件夹删不掉的原因及解决…

(亲测)vue-cli项目添加骨架屏多种方式,自动生成骨架屏

vue-cli项目首页加载缓慢想要使用骨架屏效果&#xff0c;经过几天的踩坑&#xff0c;这里学习并记录一下vue项目自动生成骨架屏方法。 添加骨架屏&#xff0c;其优势在于&#xff1a; 写于HTML文件中&#xff0c;独立于Vue框架&#xff0c;节省了JS加载时间JS全局环境创建的执…

win7系统屏幕键盘打开教程

我们在电脑没有接入键盘或者键盘失灵等情况下&#xff0c;如果想要输入内容&#xff0c;可以使用系统自带的屏幕键盘。只需要在控制面板中打开屏幕键盘就可以使用了&#xff0c;下面就让我们一起看看win7系统屏幕键盘打开教程吧。 1、首先点击左下角的“开始”&#xff0c;在右…