目录

什么是响应式布局

为什么会造成布局混乱

META标签

相对度量

FLEX布局

宽高设置

媒体查询

替换元素

响应式框架


什么是响应式布局

响应式网页(Responsive Web,RW)又称自适应网页,是一种网页设计布局,可以根据访问媒体不同(网页宽高变化)而变化样式,防止网页布局因访问环境而造成布局混乱,影响用户体验。

为什么会造成布局混乱

移动设备(手机等)的分辨率相较于电脑通常会更小,手机浏览器会根据设定调整自己的网页可视区域,通常为980px(根据设备设置而定)。并且,在移动设备上 px 可能与电脑的度量不同,这是由于技术的发展,手机的屏幕像素密度越来越高,造成一个像素点可能对应两个物理像素。

想要实现响应式网页,需要对整个网页布局进行分析,在此基础上,再考虑以下方法。

META标签

<meta content="width=device-width, initial-scale=1.0" name="viewport">

这句话可以说写网页必备,首先我们来理解一下这句话的作用。

meta是一个辅助性标签,可以提供网页元信息,方便SEO,对于响应式布局也有帮助。

viewport是设备能够显示网页的那块区域,根据设备的不同,其viewport可能也不相同。viewport有三种,分别是 layout、visual和ideal,这三种具体讲解请自行搜索。移动设备默认是 layout viewport,但在开发过程中,我们需要 ideal viewport。width=device-width 正是将宽设置成ideal viewport的状态,initial-scale 是设置页面初始缩放值,viewport总共有六个属性:

属性值 说明
width 设置viewport宽度
height 设置viewport高度
initial-scale 设置页面初始缩放值
minimum-scale 允许用户最小缩放值
maximum-scale 允许用户最大缩放值
user-scalable 是否允许用户缩放

相对度量

CSS3推出了许多相对度量单位,相对度量单位是指参考某一元素变化度量,也就是说其并不是一直不变的。

1. %:字面意思百分号,根据父元素而变化。如 width: 100% 宽度即父元素大小;

2. VW:视图宽度,根据视图而变化。如 width: 100vw 宽度即网页视图宽度;

3. vh:视图高度,根据视图而变化。如 height: 100vh 高度即网页视图高度;

4. em:根据当前对象文本大小而变化(仅用于字体);

5. rem:根据根元素文本大小而变化(仅用于字体);

对于一些需要根随页面变化的元素,应该使用相对度量单位。比如 input 框:

input[type=text] {width: calc(100% - 50px) // 跟随父元素宽度且少50px
}
// 关于calc函数可以看 https://blog.csdn.net/qq_30258721/article/details/126273893

FLEX布局

flex布局也是制作响应式网页重要的一环。flex布局可以用来为盒状模型提供最大的灵活性,最大程度上利用网页空间。

但网页宽高变化时,flex布局可以将盒子重新排列,实现网页布局整齐。

宽高设置

对于一些宽高无法固定的盒模型,宽高不能设置成定值(height: 100px),而应该通过百分比,vh或者其他相对度量值。

百分比和vh用的比较多,对于页面的主体的部分通常写:

width: 100%
// height有很多写法,auto、100%和100vh等等,每种对应不同情况,比如100vh表明盒子高为一页面高

注意:不应该所有盒子都设置对象度量。大盒子设置 width: 100%时,应该思考其内部小盒子需不需要也设置相对度量,如果都设置成 width: 100%,那么页面变化时,几个盒子都跟着变化,造成样式混乱。一般应该大盒子设置相对,内部小盒子设置定值,这样当大盒子随着页面变化后,如果宽度不够容下所有小盒子,会将其挤到下一行。

媒体查询

@media是CSS3推出的一个新特性,它能识别各种设备,通常类型值设为screen。通过@media可以定义不同宽高下的样式,比如当页面宽度小于800px之间时主体部分背景色变为红色:

@media screen and (max-width: 800px) {main {background-color: red;}
}

替换元素

对于一些无法直接通过改变样式的元素,可以进行替换,如导航栏,页面缩小时,导航栏项不可以减少,字体大小改变也会导致无法看清等问题,这些将其替换成 icon 图标,点击即出现导航栏。

响应式框架

当然,现在前端框架已经发展的十分成熟,非必要不需要从零开始布局。推荐几个响应式前端框架:

1. Bootstrap

自 Bootstrap 3 起,Bootstrap就支持响应式布局,且移动设备优先。bootstrap开源且上手简单,十分推荐

2. Foundation

Foundation 也是相当成熟的前端框架,不仅支持响应式布局,也提供多种web UI组件

3. UIkit

UIkit是一个轻量级、模块化的前端框架,帮助开发出快速、强大的Web接口,它有着全面的HTML、CSS和JS集合,易于使用和扩展。

4. Groundwork

5. Base

如何实现响应式(自适应)网页相关推荐

  1. 超美响应式自适应引导页带音乐播放器源码

    介绍: 超美响应式自适应引导页带音乐播放器源码,纯html源码,右键记事本修改即可~自带音乐播放器,自带自动打字特效,自带网站存活时间,自带随机ACG背景,自适应响应式网页 网盘下载地址: http: ...

  2. 响应已被截断_技术:RWD响应式网站网页设计基本原则

    响应式网站网页设计 RWD响应式网站网页设计对于解决多尺寸屏幕问题是个很好的解决方案,从平面的角度切入需克服很多困难,没有固定的页面尺寸.没有毫米或英寸,没有任何限制会让人感到无从下手.随着建立网站的 ...

  3. 快速完成网页设计,10个顶尖响应式HTML5网页模板助你一臂之力

    为了寻找一个优质的网页模板,网页设计师和开发者往往可能会花上大半天的时间.不过幸运的是,现在的网页设计师和开发人员已经开始共享HTML5,Bootstrap和CSS3中的免费网页模板资源.鉴于网站模板 ...

  4. 10个顶尖响应式HTML5网页

    快速完成网页设计,10个顶尖响应式HTML5网页模板助你一臂之力 为了寻找一个优质的网页模板,网页设计师和开发者往往可能会花上大半天的时间.不过幸运的是,现在的网页设计师和开发人员已经开始共享HTML ...

  5. 30个响应式大背景网页设计欣赏

    大背景页面设计是抓住访客眼球的最好案例,而这不仅考虑摄影师的设计技巧还考验他们对图片的处理.下面分享30个响应式大背景网页设计案例,希望能给你启发.enjoy! 你可能感兴趣的大背景资讯: <3 ...

  6. Top10响应式手机网页开发软件

    现在人们对手机的要求越来越高,恨不得把整个世界都一手掌控.各大门户网站如今都编制了wap网页,但这也是项耗时费力的复杂工程.如果你想简单点,省掉自己编程的麻烦,可以求助于下面的这些网站开发软件. 你不 ...

  7. 分享一套响应式自适应公司网站官网源码,带文字搭建教程

    分享一套响应式自适应公司网站官网源码,带文字搭建教程.需要源码学习可私信我. 技术架构 PHP7.2 + nginx + mysql5.7 + JS + CSS + HTML cnetos7以上 + ...

  8. HTML5期末大作业:旅游网站设计——简单大气的响应式旅游网页(5页) HTML+CSS+JavaScript...

    HTML5期末大作业:旅游网站设计--简单大气的响应式旅游网页(5页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设网页设计源码 常见网页 ...

  9. 【PHP】高端响应式自适应房屋出售建筑设计企业织梦模板

    高端房屋出售建筑设计企业织梦网站模板是一套设计风格简洁的房屋建筑类企业模板.页面设计相对比较独特,有些特别的设计, 特别是对房屋展示方面的东西做的很好.页面简洁大气,干净利落.很适合房屋出租,建筑设计 ...

  10. 如何用一简单的CSS制作响应式HTML网页

    如何用简单的CSS制作响应式HTML网页 #故事前端开发 在这篇文章中,我将教你如何使用CSS网格来创建一个超级酷的图像网格,它随着屏幕的宽度而改变列的数量. 最赞的一点就是:这个响应式效果只需要添加 ...

最新文章

  1. HTML5调用手机的Datepicker(日期选择器)
  2. 神经网络迭代次数的简并和不可约谱项
  3. oracle status
  4. 【数据结构与算法】之深入解析“戳气球”的求解思路与算法示例
  5. 一道很熟悉的前端面试题,你怎么答?
  6. 吴玉禄他的机器人_中国人— 我们村的机器人
  7. server取出多个最小值 sql_SQL汇总查询及分组查询
  8. 名不正则言不顺,言不顺则事不成
  9. 多款 D-Link 路由器受多个 RCE 漏洞影响
  10. 创维智能网络机顶盒e950_拆创维E950机顶盒
  11. 无线网络技术导论知识点
  12. psn账号修改地址可以转服务器,PSN换卡换服换账户教程
  13. 【Android】【架构】【美团猫眼模块化】
  14. 利用opencv-python绘制多边形框或(半透明)区域填充(可用于分割任务mask可视化)
  15. UVM基础-Sequence、Sequencer(二)
  16. THINKPHP框架的优秀开源系统推荐
  17. 吴恩达深度学习课程完整笔记(DeepLearning.ai)
  18. Android tcpdump
  19. 10Mbps是多少网速呢
  20. 云计算技术的产生、思想、原理、应用和前景

热门文章

  1. 售后服务量太大,客服人员忙不过来,怎么办
  2. 再见2015,你好2016
  3. 项目内部iframe嵌套jupyterhub for k8s
  4. 实在腾不出手来还好可以刷脸支付
  5. 递归计算(偶数求和)
  6. oracle导入数据出现如下提示信息:variant conversion error for variable
  7. linux系统建立ftp用户名和密码,linux系统搭建ftp服务器及创建用户使用
  8. 计算机机房设计资质,最新设计资质及承担业务范围.docx
  9. 最全的各国 语言(文化)代码与国家地区对照表(国际通用标准形式)
  10. Python 高级编程和异步IO并发编程 --12_7 生成器进阶- yield from