@mixin queryWidth( $min , $max ){
@if $min == -1{
@media screen and ( max-width: $max+px ) {
html{
font-size: ( ($max+1) / 375 ) * 100px;
}
}
} @else if $max == -1{
@media screen and ( min-width: $min+px ) {
html{
font-size: ( $min / 375 ) * 100px;
}
}
} @else{
@media screen and ( min-width: $min+px ) and ( max-width: $max+px ) {
html{
font-size: ( $min / 375 ) * 100px;
}
}
}
}
@include queryWidth(-1,319);
@include queryWidth(320,359);
@include queryWidth(360,374);
@include queryWidth(375,383);
@include queryWidth(384,399);
@include queryWidth(400,413);
@include queryWidth(414,-1);
适配原则
大屏显示更多内容,文字和间距大小不变,图片等比缩放。
有以下场景:
通栏图片——等比缩放
iphone5:



iphone6:
iphone6+:
使用了占位组件placehold:http://frozenui.github.io/frozenui/demo/placehold.html
icon,文字——大小不变,横向拉伸



iphone5:
iphone6:
iphone6+:
使用了布局样式layout:http://frozenui.github.io/frozenui/demo/layout.html
多栏图片网格——间距不变,图片等比拉伸



iphone5:
iphone6:
iphone6+:
使用了网格组件grid:http://frozenui.github.io/frozenui/demo/grid.html
多栏网格——间距不变,横向拉伸



iphone5:
iphone6:
iphone6+:
使用了网格组件grid:http://frozenui.github.io/frozenui/demo/grid.html
图文——文字和图片的大小不变,间距不变,横向拉伸



iphone5:
iphone6:
iphone6+:
使用了列表组件list:http://frozenui.github.io/frozenui/demo/list.html
具体效果参考:http://codepen.io/anon/pen/LVQgvB
等比缩放的实现方式
百分比
普通的百分比,适合宽度拉伸
如grid.css:
padding-top百分比,适合图片,宽高都拉伸
因为 padding 的百分比值是相对于宽度的,也就是有了跟屏幕宽度成正比的条件,所以利用 padding-top 设置与宽高等比的百分比值占位,就实现了同样的效果。
计算公式: padding-top: 图片高度 * 100% / 图片宽度。
placehold.css中:
rem
适合图片上的内容,需要一起缩放,或者一些特殊情况
frozenui增加了一个rem.css,body有设置默认的字体大小,所以使不使用不会有影响,sass源码如下:
选取了目前主流的屏幕尺寸,如果要求百分百精确要么使用百分比的方式要么使用js计算。
以iphone6的屏幕为基准,px与rem的对应关系为100 : 1。
scale