最近用 responsive web design 对目前的网站一部分页面进行了重写
总结了下对应 responsive web design 中遇到的问题和解决方法
百度百科是这么定义的
响应式网站设计是一种网络页面设计布局,其理念是:集中创建页面的图片排版大小,可以智能地根据用户行为以及使用的设备环境进行相对应的布局
我的理解是不管你是什么设备,我只管你的画面大小,根据你的画面给你最合适的显示
现在的各种设备越来越多,你不得不对各个设备进行显示优化
比如常见的有 pc、tablet、mobile,将来估计会不断增加
尤其是手机 (mobile),现在手机访问网站越来越成为主流,让开发人员不得不优化手机页面
具体实现的技术有很多,大概总结了一下
比如像这样
优点
缺点
根据终端的 user agent 来判断类型
然后返回不同的 HTML 文件
优点
缺点
优点
缺点
目前的项目用的是第二种办法,对 user agent 进行判断,然后返回不同的 HTML 文件
维护一段时间以后发现一些不方便的地方
由于各个页面的 pc、tablet、mobile 的内容是基本相同的
所以采用了 responsive web design 来实现
决定最基本的断点
这个可以根据你的网站访问的设备的大小来进行判定,每个网站应该会有些不同
比如我是这样定义的
参考网站
目前采用的是 ITCSS + BEM,具体可以参见 CSS 设计之 ITCSS 这篇文章
因为网站的 mobile 访问量非常多
所以先写 mobile 用的 CSS,然后在用 media-query 覆盖 mobile 的设定来写 tablet、PC
@mixin max-screen($break-point) {
@media screen and (max-width: $break-point) {
@content;
}
}
@mixin min-screen($break-point) {
@media screen and (min-width: $break-point) {
@content;
}
}
@mixin screen($break-point-min, $break-point-max) {
@media screen and (min-width: $break-point-min) and (max-width: $break-point-max) {
@content;
}
}
$breakpoint-pc-min: 900px;
$breakpoint-pc-small-max: 899px;
$breakpoint-pc-small-min: 769px;
$breakpoint-tablet-max: 768px;
$breakpoint-tablet-min: 481px;
$breakpoint-sp: 480px;
/* 320px ~ 480px */
.container {
}
/* 481px ~ 768px */
@include min-screen($breakpoint-tablet-min) {
.container {
}
}
/* 769px ~ 899px */
@include min-screen($breakpoint-pc-small-min) {
.container {
}
}
/* 900px ~ */
@include min-screen($breakpoint-pc-min) {
.container {
}
}
我觉的这是刚开始写的时候最困难的地方
在 ITCSS 中,用 Components 来进行组件的重用
但是在 responsive web design 里面,同一个组件在每个页面大小,边距等也许会有所不同
解决方法
大概是这样
@import "./components/parts/*";
@import "./components/projects/*";
@import "./pages/page1/*";
@import "./pages/page2/*";
@import "./pages/page3/*";
比如 menu 做成这个网站这样
pc 的时候
mobile 的时候
解决方法
responsive web design 对于差别太大的 UI 实现起来不容易
所以 UI 设计会尽可能的不要太大的差别
如果你的项目 PC 和 mobile 的 UI 差别很大的话,不建议使用 responsive design
总结了 responsive web design 的优缺点和开发中的一些问题
有好的意见请回复我