所向披靡的响应式开发——如何一招制胜?前端工程师必会技能

2023-11-07

之前也接触过响应式开发,大概就是下载一个响应式网站模板,然后替换图片,哈哈!

确实没有系统的学习和了解过响应式开发。最近工作还蛮清闲,找出压箱底很久的响应式开发教程,大概一月前看过一些,然后也忘得差不多la,从头开始学习呗!

这套课程还是很基础的,但越是基础的东西,越不愿意花心思静下心来学习。看完这套响应式开发教程,不仅能够构建响应式开发前端技术树,还帮助自己整理了部分HTML和CSS基础知识,很重要但总记不清楚的知识点。

首先了解一下响应式设计的概念。

什么是响应式网站?

响应式网站(Responsive Web Design)是一个设计理念,在响应式网站的设计与开发中应当根据用户行为以及设备环境(系统平台、屏幕尺寸、屏幕定向等)进行相应的响应和调整。

无论用户正在使用笔记本还是iPad,我们的页面都应该能够自动切换分辨率、图片尺寸及相关脚本功能等,以适应不同设备;换句话说,页面应该有能力去自动响应用户的设备环境,只设计一个网站就能够兼容多个终端

 响应式网站设计的理念是在2010由 Ethan Marcotte 著作的 《Responsive Web Design》一文中提出,它是多项技术的综合体,主要包括:

  1. flexible grid layout 弹性网格布局(别称:流式布局、自适应布局):不对浏览器宽度做任何假设,若分辨率较低或较高,表现会很糟糕,优化程度有限
  2. flexiable image 弹性图片:针对图片的响应式优化
  3. media queries 媒体查询:针对不同分辨率编写不同样式

响应式网站优缺点

优点:

  1. 减少工作量,网站、设计、代码、内容都只需要一份,多出来的工作量只是JS脚本和CSS样式的部分改动。

  2. 节省时间。
  3. 每个设备都能得到正确的设计。
  4. 帮助搜索优化。

缺点:

  1. 需要加载更多的样式和脚本资源。
  2. 设计比较难以精确定位和控制。
  3. 老版本浏览器兼容性不好。

响应式网站设计实践原则?

了解过响应式网站设计概念,在开始真实项目实践前,需要明确响应式网站设计的几个实践原则。避免我们因为基础不牢靠,导致错误的选型。

原则一:progressive enhancement 渐进增强 VS graceful degradation 优雅降级

渐进增强和优雅降级这两个概念是在 CSS3 出现之后火起来的。由于低级浏览器不支持 CSS3,但是 CSS3 特效太优秀不忍放弃,所以在高级浏览器中使用CSS3,而在低级浏览器只保证最基本的功能。二者的目的都是关注不同浏览器下的不同体验,但是它们侧重点不同,所以导致了工作流程上的不同。

渐进增强(Progressive Enhancement):一开始就针对低版本浏览器进行构建页面,完成基本的功能,然后再针对高级浏览器进行效果、交互、追加功能达到更好的体验。

优雅降级(Graceful Degradation):一开始就构建站点的完整功能,然后针对浏览器测试和修复。比如一开始使用 CSS3 的特性构建了一个应用,然后逐步针对各大浏览器进行 hack 使其可以在低版本浏览器上正常浏览。

在相应式网站开发中题主是推荐优雅降级的原则,毕竟@media属性是css3中的新特新。

原则二:先针对大屏幕设计 VS 先针对小屏幕设计

与习惯和网站性质有关,没有对错,只有适合。对于支付理财类的项目,用户通常会选择在电脑上操作(有各种安全证书保障),这时可以先针对大屏幕设计。对于娱乐休闲类的项目,用户习惯在手机端操作,这就可以优先考虑小屏幕的设计。

原则三:如何选择浏览器进行开发阶段的调试

确定支持的浏览器,可根据各浏览器市场占比和公司实际业务情况,选择需要兼容的浏览器。若没有特殊情况,推荐在最新版本的chrome浏览器中进行开发,从chrome浏览器移植到其他浏览器时兼容性还是不错的。

原则四:如何选择媒体查询的断点

建议不要针对特定设备分割,而是针对屏幕尺寸进行分割。例如,

当然这个断点值的选取要根据设计稿进行调整。

原则五:如何取舍大小屏幕上的展现内容

不管设备大小,应该包含相同的内容 VS 根据设备大小不同,显示相同的内容。这就取决于产品经理啦。

响应式网站开发技术点详解

知识点一:单位的选择,px、rem、em

帮你彻底弄懂css中单位px、rem、em的区别,以及在响应式开发中不同单位最优的适用场景。

知识点二:@media媒体查询实例

针对不同屏幕大小,编写不同的页面样式,改用合适屏幕大小的排版和布局。

知识点三:响应式图片的实现

响应式图片不仅仅指图片的排版和布局,还包括根据设备大小加载不同的图片。在移动端设备上访问时,加载与用户设备相匹配的小图片,即快速,又不影响用户体验,也不会因为加载跟移动端不适配的高清大图导致用户流量出走。点击标题链接,将会介绍五种实现响应式图片的方法。

其他,前端开发基础知识点汇总

在学习这套响应式开发教程的过程中,还涉及很多HTML和CSS相关的基础知识,整理如下:

浮动布局实例详解和清除浮动的方法

10 分钟理解 BFC 原理

display:inline-block元素之间空隙的产生原因和解决办法

一文横扫CSS3选择器的使用方法

前端开发人员应该知道的常用工具网站大全

如何组织项目目录结构——项目目录结构规范

浅谈Normalize.css和Reset.css的区别——选择对的默认样式处理脚本

附录 

视频课程原地址:所向披靡的响应式开发 一套代码适配多终端,前端工程师必会技能

响应式开发项目代码地址:https://github.com/Hayley2016/responsive-web-design

需要视频课程的同学可以联系微信【H19950211H】免费提供。

与君共勉:再牛逼的梦想,也抵不住傻逼般的坚持!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

所向披靡的响应式开发——如何一招制胜?前端工程师必会技能 的相关文章

  • SSH 免密码登录ssh-keygen&ssh-copy-id&sshpass命令详解

    SSH 免密码登录ssh keygen ssh copy id sshpass命令详解 ssh keygen命令详解 功能 生成ssh密钥验证所需要的私钥与公钥文件 参数 t 指定密钥类型 f 指定生成私钥文件名 P 提供 旧 密语 例子
  • 深度学习笔记 4 过拟合+欠拟合+解决方案

    目录 1 偏差与方差 2 产生原因 3 解决欠拟合 高偏差 的方法 3 1 模型复杂化 3 2 增加更多的特征 3 3 调整参数和超参数 3 4 增加训练数据 效果不明显 3 5 降低正则化约束 4 解决过拟合 高方差 的方法 4 1 增加
  • 实例:vmem_disk设备驱动的block_device_operations(3)

    vmem disk提供block device operations结构体中的getgeo 成员函数 如下给出了vmem disk设备驱动的block device operations结构体定义及其成员函数的实现 static int v
  • openwrt中br-lan,eth0,eth0.1,eth0.2 已经 实际网口wan,lan对应的配置

    openwrt的接口真是多 老高一下子都看晕了 不过仔细理一理 还是能够分辨的 首先盗openwrt wiki中的一张图 这张图对理解这些接口很重要 I 网络配置 有线网配置 openwrt的有线网络配置文件位于 etc config ne
  • mybatis5-分页插件.md

    一 jar包 逆向工程不支持分页 PageHelper 底层使用拦截器 二 配置拦截器
  • 小程序大屏适配指南

    小程序大屏适配指南 概述 为保证用户在PC端使用小程序也有流畅友好的体验 本指引将提供一系列大屏适配相关建议 以供参考 1 为什么要做适配 由于用户可在PC端使用小程序 且有可能在不同尺寸视图下进行切换 为了保证小程序在不同尺寸屏幕下的体验
  • ATF(TF-A) fvp_r 平台威胁模型-安全检测与评估

    安全之安全 security 博客目录导读 ATF TF A 威胁模型汇总 目录 一 简介 二 评估目标 1 只支持BL1 2 EL3是不支持的 并且是完全安全的 3 用MPU代替MMU 4 不支持AArch32 5 威胁评估 一 简介 本
  • 什么是模块化?模块化的好处?

    什么是模块化 模块化就是将js文件按照功能分离 根据需求引入不同的文件中 源于服务器端 模块化好处 1 解耦 对业务进行模块化拆分后 为了使各业务模块间解耦 因此各个都是独立的模块 它们之间是没有依赖关系 2 复用 每个模块负责的功能不同
  • Element UI更改下拉菜单el-dropdown-menu样式

    Element UI更改下拉菜单el dropdown menu样式 源代码
  • [网络安全自学篇] 八十一.WHUCTF之WEB类解题思路WP(文件上传漏洞、冰蝎蚁剑、反序列化phar)

    这是作者网络安全自学教程系列 主要是关于安全工具和实践操作的在线笔记 特分享出来与博友们学习 希望您喜欢 一起进步 前文分享了WHUCTF部分题目 包括代码审计 文件包含 过滤绕过 SQL注入 这篇文章将讲解Easy unserialize
  • 接口文档生成工具ApiPost挺好用

    作为一名程序员我深知一款好用的软件工具对工作效率的提升意味着什么 相信不少程序员还在依靠老外们做的软件处理手头工作 曾经我也是其中一员 不过现在我已经开始迷上了国产软件 国外的自然后他的优势 但国产软件工具也吸引了不少程序员开始尝试 虽然他
  • tensorflow2学习笔记

    目录 Tensorflow2 0特性 构架 TensorflowDemo AlexNet 过拟合 卷积后矩阵尺寸大小的计算 代码地址 VGG 感受野 网络结构 代码地址 GoogLeNet GoogLeNet网络结构 参数 Inceptio
  • [机器学习笔记-3]识别服饰图像的神经网络

    目录 1 安装tensorflow数据集 命令行输入 导入依赖 2 导入Fasion MINST数据集 3 处理数据 4 构建模型 5 训练模型 6 评估准确度 7 预测数据 8 图表显示数据 jupyter notebook中运行注意事项
  • 2020年最新的PHP面试题(附答案)

    684 PHP究竟是不是最好的语言 一直以来是程序员最大的 争议 但毋庸置疑的是 PHP绝对是最有前途和力量的变成语言 也是你入门最值得学习的语言 为什么这么说呢 不妨来了解一下 为什么学PHP 语言入门简单 容易掌握 程序建设性好 开发者
  • javaWeb的项目路径问题(对servlet路径和form表单请求路径的一些归纳)

    javaWeb项目的路径问题 这篇文章大神将路径问题讲的很透彻 我想说的是几点小细节 博主说的很清楚 如果这里的deployment下面的application context中不单单仅是一个 后面加的有其他字符的话 在form表单中我们填
  • 深聊测开领域之:Testcase中资源泄露

    1 引言 2 何为资源泄露 2 1 资源泄露定义 2 2 TestCase 中资源泄露 3 避免资源泄露 3 1 如何避免资源泄露 3 2 自动化执行顺序 1 引言 执行测试时离不开测试用例 测试用例辅佐执行测试 这就好比皇帝与宰相 需要的
  • jekyll网站上传服务器,jekyll 高效搭建个人博客之完整流程

    jekyll png 原创精选来自我的博客文章 目录 说在前面的话 作为一个和电脑 代码打交道的我 一直都想拥有自己的博客 一切都显得那么高 zhuang 大 bi 上 yong 在下定决心之后就在网上到处查找资料 最终发现一般用的就三种

随机推荐

  • 定时任务之Springboot整合Quartz详解

    文章目录 一 什么是Quartz 二 为什么使用Quartz 1 为什么要用定时任务 2 为什么使用Quartz 三 常见开源定时任务的框架的异同 四 Quartz的组件 五 Quartz持久化 1 为什么要持久化 2 Quartz提供了两
  • 解决openwrt ipk missing dependencies libpthread librt

    新版本的trunk有在ipk打包的过程中的bug 他不能自动识别SDK中已经变异的动态链接库 比如libpthread libboost这些 解决方案是修改与pakage里同级的makefile的内容 可以修改如下 主要是添加DEPENDS
  • JavaScprit---基础代码

    var text Hello World document write p text indexOf Hello p document write p text indexOf World p document write p text i
  • MySQL中Select+Update并发的更新问题

    小知识补充 首先 我们要知道在mysql中update操作都是线程安全的 mysql引擎会update的行加上 排他锁 其他对该行的update操作需要等到第一个update操作提交成功或者回滚 才能获取这个 排他锁 从而对该行进行操作 例
  • 程序员如何进行职业规划?

    本文来自作者 王俊生 在 GitChat 上分享 程序员如何进行职业规划 阅读原文 查看交流实录 文末高能 编辑 哈比 一直以来程序员这一职业都给人高薪资的印象 近年来随着互联网行业的快速发展 程序员更是人满为患 然而很多人关注的却是程序员
  • MOS管电源开关电路的软启动

    https mp weixin qq com s 5W8rveh69XVzJoRX XrSfgbeizhu 仅用于标注 适用于我这样的硬件小白
  • React你应该学会的开发技巧【总结】!

    关注公众号 前端人 回复 加群 添加无广告优质学习群 干净的代码不仅仅是工作代码 简洁的代码易于阅读 易于理解并且井井有条 在本文中 我们将研究六种编写更简洁的React代码的方法 在阅读这些建议时 请务必记住它们的实质 相信这些实践对我们
  • 链表两数相和 (2)--Leetcode

    题目描述 给出两个 非空 的链表用来表示两个非负的整数 其中 它们各自的位数是按照 逆序 的方式存储的 并且它们的每个节点只能存储 一位 数字 如果 我们将这两个数相加起来 则会返回一个新的链表来表示它们的和 您可以假设除了数字 0 之外
  • 通过在线游戏练习flex布局和各种css选择器

    懒是一个很好的托辞 说的好像你勤奋了就能干成大事一样 序言 不知道身为后端程序员的你写不写前端代码 反正我是经常写 调布局和样式着实有点费劲 一般像我这样的后端开发都不会系统的去学一些前端知识 都是遇到了就百度 然后复制粘贴一下 再不停的让
  • MyBatis七:自定义映射resultMap

    自定义映射resultMap 一 resultMap处理字段和属性的映射关系 为字段设置别名 是别名和属性名一致 方式一
  • STM32 系统定时器--SysTick

    目录 一 结构图与寄存器 二 SysTick定时时间计算 三 Systick 系统定时器配置程序 如何更改systick中断优先级 四 实验设计 1 通过查询标志位来写延时函数 2 通过使能中断来写延时函数 SysTick 系统定时器 24
  • Java学习笔记之用Box布局swing界面

    主要就用到了这四个方法 createHorizontalBox 创建一个从左到右显示其组件的 Box createHorizontalStrut int width 左右部件之间的中间间隔就可以用这个方法来控制 创建一个不可见的 固定宽度的
  • 如何清空Keil的历史文件记录

    解决方案 先把Keil 关掉再进行以下操作 1 Win R并输入regedit 2 点开HKEY CURRENT USER 3 点开SOFTWARE 4 点开你使用的KEIL 5 点开Recent File List并删除右侧的文件们 除默
  • 2.4G和蓝牙技术

    转自 http 25078558 blog 163 com blog static 8667921420121012103312364 随着笔记本电脑的普及以及用户的数据传输需求 越来越多的笔记本甚至一些中高端的上网本配备了蓝牙模块 此外
  • Ubuntu16.04安装php5.6

    安装步骤 sudo add apt repository ppa ondrej php sudo apt get install apache2 sudo apt get install mysql server mysql client
  • 【springboot】springboot默认logback日志

    一 问题说明 1 运行时记录日常运行的重要信息 应用报错信息 运维过程数据 2 springboot默认使用日志logback 3 日志级别 1 fatal 灾难信息 合计入error 2 error 记录错误堆栈信息 3 warn 记录运
  • 19年电赛经验总结-应该如何准备电赛

    19年电赛经验总结 应该如何准备电赛 写在前面的话 1 赛前准备 2 比赛经历 3 经验总结 写在最后的话 写在前面的话 最近忙着各大厂的实习面试 趁着准备简历的功夫回顾了一下19年电赛的比赛经历 总体来说还算说得过去 现在把我参加电赛的经
  • 目标检测之GFL

    文章目录 前言 1 GFL的主要创新部分 2 结合代码体现创新部分 1 训练阶段的预测输出 2 将bbox边框的回归值由单一确定值 狄拉克分布 变为一定范围的任意概率分布 3 Distribution Focal Loss 4 Qualit
  • 认识k8s

    本篇文章没有什么强逻辑思维 你看下去就对了 讲下本文背景 博主在面试的过程中 不断被现实捶打 竟然有一次被问及了解k8s吗 我滴妈妈咪呀 我只知道工作中公司用的是k8s 但不知道是啥 被问的一脸懵逼 瞬间给面试官留下的印象从高级降为中级 不
  • 所向披靡的响应式开发——如何一招制胜?前端工程师必会技能

    之前也接触过响应式开发 大概就是下载一个响应式网站模板 然后替换图片 哈哈 确实没有系统的学习和了解过响应式开发 最近工作还蛮清闲 找出压箱底很久的响应式开发教程 大概一月前看过一些 然后也忘得差不多la 从头开始学习呗 这套课程还是很基础