响应式布局笔记
本笔记内容来自慕课网实战教程响应式开发一招致胜
1. 响应式工具
https://caniuse.com/(Web前端兼容性查看网站)
http://gs.statcounter.com/(是美国一家网站通讯流量监测机构,提供各种类型的统计报告以及网站流量统计服务)
媒体查询:
1 | @media all and (min-width:800px) and (orientaion:landscape){ |
viewport
(移动端):
布局视口(layout viewport)
可视视口(visual viewport)
理想视口(ideal viewport)
用户浏览器太老的情况下:ZOL浏览器下载排行榜提示此网站升级用户的浏览器
用Normalize.css
代替css.resets
尽量使用em
、rem
,尽量不适用px
(IE
支持 rem
有问题,主流浏览器问题不大)
清除浮动:
- HTML 的代码:
1
2
3<div class="container clearfix">
...
</div> - CSS 的代码:
1
2
3
4
5
6
7
8.clearfix:after,
.clearfix:before {
content:""
display:table;
}
.clearfix:after {
clear:both;
} - 浏览器内核各不相同,会出现兼容性问题,须添加前缀,使用 https://autoprefixer.github.io/进行添加。*
使用广告组件:OwlCarousel2 Github页面 官网首页使用滚动广告功能(需引入 jQuery[此教程是用1.x版本])
使用方法:
- 在 HTML 的标签内添加:
1
2
3<div class="owl-carousel owl-theme">
...
</div> - 图片响应式 JavaScript (jQuery) 代码:*
1
2
3
4
5
6
7
8
9
10
11
12
13$("document).ready(function) {
fuction makeImageResponsive() {
var width = $(widow).width();
var img = $('.content img');
if(width <= 480){
img.attr('src', 'img/480.png');
}else if(width <= 800) {
img.attr('src', 'img/800.png');
}else {
img.attr('src', 'img/1600.png');
}
$(window).on('resize load', makeImageResponsive);
}); - 还有其它 API :
item
、loop
、autoplay
、nav
、autoplayHoverPause
*
1 | <img |
picture标签的用法:
1 | <picture> |
创建svg
图片:
Picturefill:https://scottjehl.github.io/picturefill/
使用:<script src="is/wendor/picturefill.min.js"></script>
(使用picture
标签)
svg
压缩:
png
压缩:
2. Node.js简介
下载安装
Node.js
下载
npm
,npm -v
可以查看npm
版本。例子:
npm install jquery
,下载jquery
(q为小写)创建
package.json
文件,使用命令:npm init
创建,使用默认名称就好了,命名不能使用大写字母,其余可以自己考虑写还是不写。''dependencies''
是生成环境所依赖的包,''devDependencies''
是开发过程所依赖的包。只需要使用
npm install
(可简写为npm i
)命令,npm
就会根据package.json
文件下载相应的依赖的包。想要下载依赖包并且把依赖包添加到
package.json
里面,需要这样写npm命令:sudo npm install gulp --save
(gulp将添加到''dependencies''
中),若想添加到''devDependencies''
文件中,则需输入sudo npm install gulp --save-dev
卸载包:
sudo npm uninstall gulp --save
,加上了--save
或--save-dev
则表示在''dependencies''
中或''devDependencies''
中删除依赖的包(本地的包也会被删除)。更新包:
npm update jquery
(只更新jquery),npm update
(更新所有包)。输入npm会提示一些npm的命令。
想要用其它设备浏览开发好的页面:
sudo npm install http-server -g
安装http-server
,(-g--
的意思是全局安装。)http-server Github 页面
http-server
的使用:http-server scr
(src
为你的网站内容存储的目录。)将会生成两个远程地址,两个远程地址都是可以访问这个网站的。(如果是windows系统,使用IE浏览器,需要在地址前面加上http://这个协议,否则可能不能打开网站。)
ctrl + c
结束服务器。假如8080端口被占用,则需要命令:
http-server src -p 8888
监听其它端口,启动服务器。http-server -help
可以看到很多参数的使用方法。
3. 如何处理兼容性及在多个设备上进行调试
桌面端:
- 使用不同的浏览器测试网页,注意想用
http-server
开启服务器,然后用Chrom
、Firefox
、Opera
、Safari
、IE
、Edge
,分别打开一次,看看有没有兼容性问题。 - 如果使用的是
Mac OS
系统或是Linux
系统,尽量使用虚拟机,安装一个Windows
系统,然后使用这些虚拟机里面的环境测试这个网站。
移动端:
可以使用testin.cn做付费测试,一般测试
app
比较值,测Web
就看个人了。使用虚拟机,推荐使用http://www.genymotion.net/(有时候需要翻墙,这是安卓虚拟机)。苹果最好就是用自己的或者朋友的真机了。
使用
CSS hack
调试样式,推荐使用http://browserhacks.com/,搜索关键词,比如``ie7``就会提示一些``ie7``支持的样式写法。想IE6-8支持HTML5,则使用shiv,使用引用就好,github页面上有写如何引入。
比如:你想检测浏览器是否支持
svg
则搜索svg
,新建一个js
文件,把复制的内容粘贴进去,保存好,用浏览器打开页面,在Elements
窗口(此处使用的是Chrome
浏览器)下,能看到一个新的类,class = "svg"
,如果不支持则显示为class = "no-svg"
。(其它内容请看官方文档)或使用caniuse.com(这个网站比较快解决问题)
4. 如何打包分布
https://javascript-minifier.com/(压缩代码,也可以压缩css、图片),但是每次压缩都要手动,比较麻烦。
推荐使用
Node.js
的工具,Grunt & Gulp
是自动化构建工具,Webpack
是静态资源打包工具。此处使用Gulp,另外附上中文官网:
- 1.安装,先初始化package,使用
npm init
命令初始化。 - 2.改一下名称,其它都可以使用默认值,就会出现一个package.json文件,里面的依赖是空的。
- 3.输入命令
sudo npm install gulp --save-dev
安装,安装完成后,package.json中会出现依赖包。 - 4.使用命令
gulp -v
检测下是否安装成功。 - 5.在根目录新建一个
gulpfile.js
文件。 - 6.安装一些需要用到的插件,命令:
sudo npm install gulp-rev gulp-rev-replace gulp-useref gulp-filter gulp-uglify gulp-csso --save-dev
- 7.示例代码:
- 1.安装,先初始化package,使用
1 | var gulp = require('gulp'); |
- 8.输入命令:
gulp default
(default可以输入也可以不输入,因为代码里面已经写好了default,不输入default则默认执行default)。 - 9.就可以在目录中看到压缩好的文件。
使用Webpack + Gulp方案
更好。
5. 流行的响应式框架简介
Bootstrap
: 英文官网:https://getbootstrap.com/ 中文官网:http://v3.bootcss.com/Foundation
: 英文官网:http://foundation.zurb.com/ 中文官网:http://www.foundcss.com/Semantic UI
: 英文官网:https://semantic-ui.com/ 中文官网:http://www.semantic-ui.cn/Pure
: 英文官网:https://purecss.io/ 中文官网:http://purecss.org/使用框架的缺点:
- 体积大而重,使用起来不方便
- 样式单调,没有创新(所以比较适合后台管理系统)
6. 原型设计和切图
Axure
:原型设计工具,产品经理常用。sketch
:可做原型设计,也可做UI设计,产品经理、UI设计师常用。图片都是矢量图片。- 切图:
Photoshop
:中有切图工具(.jpg
不支持透明,.gif、.png
都支持透明度。图片色彩丰富的存为.jpg
格式比较好。)sketch切图,点选图片后直接导出就可以了,还可以切出不一样分辨率的图。 - 交互设计:Flinto、Principle