分析设计图
假设设计图大小为1080px。这也就意味着,在开发时,需要兼容的最大分辨率为1080px,最小的为320px。
2. 调整视口
代码实例:
<!DOCTYPE html><head>
<meta charset="UTF-8" />
<title>布局之路-移动端开发实例</title>
<meta name="viewport" content="width=device-width,user-scalable = no" />
<link rel="stylesheet" type="text/css" href="css/reset.css" />
</head>
<body>
<div class="wrap"></div>
</body>
</html>
代码解析:由于使用不同设备打开网页时,宽度均有所不同,所以不能讲视口设置为固定值,应当为width=device-width,即将视口设置为当前设备的宽度。
3. 确定设计图的最小字体
浏览器(部分)能够显示的最小字体未12px,当移动端页面宽度为320px时,要保证最小字体为12px,那么在1080px的设计图中,最小字体应当为42px。
代码实例:
<style type="text/css">html {
font-size: 42px
}
</style>
4. 按照设计图的像素进行开发
按照正常网页开发流程,进行网页开发即可。
5. 使用百分比和rem替换px
代码效果对比:
/*使用固定像素*/.box {
float: left
width: 658px
font-size: 72px
text-align: center
line-height: 195px
}
/*使用百分比和rem*/
.box {
float: left
width: 60.93%
font-size: 1.71rem
text-align: center
line-height: 4.64rem
}
代码解析:
水平方向的值,将具体像素调整为百分比。百分比的计算是根据父级的内容区宽度进行计算的。
例如,父级宽度为1080px, 子级元素为197px,那么子元素转换为百分比为:197/1080*100%=18.24%。需要注意的是百分比根据父级计算,当标签结构级别不同时,计算公式中的“分母”也有所不同,在开发时这个地方很容易出现问题,请务必注意。
垂直方向的值,将具体像素调整为rem,与水平方向相比,垂直方向的计算就比较简单。例如,行高为195px,HTML标签当前的字体大小为42px,将行高转换为rem单位,即195/42= 4. 64rem。
先给你写一套代码,之后再来解释哈。
css部分:
.aa {display: flex //使用flex布局,可以轻易获得水平布局
align-items: center //垂直方向居中
justify-content: center //水平方向居中
height: 200px
border: 1px solid #000
}
.aa1, .aa2, .aa3 {
flex: 1
padding: 2px
height: 100px
}
.aa1 div, .aa2 div, .aa3 div {
width: 80%
height: 100px
}
.aa1 div {
background-color: red
}
.aa2 div {
background-color: green
}
.aa3 div {
background-color: blue
}
html部分:
<div class="aa"> //flex的容器外框
<div class="aa1"><div style="width: 100%">内容1</div></div>
<div class="aa2"><div style="width: 100%">内容2</div></div>
<div class="aa3"><div style="width: 100%">内容3</div></div>
</div>
效果如图:
垂直和水平居中都是相对于外框来说的,即本例的aa来说的。flex=1即为在水平方向是等分布局的。在你给的安例中,直接循环aa就可以。如果对flex不懂,可以去学习一下,推荐扩展链接:网页链接
感应式设计,简单来说,就是当用不同设备访问时,能够根据设备的宽度和高度对设备进行动态的适配;例如,用iPhone4、iPhone5、iPhone6、PC、iPad访问同一个网址,正好能打开一个适合该设备的一个HTML5的页面,不留白边,不变形。这就算是感应式设计了,也就是本文说的“屏幕自适应”。由于设备分辨率不同,长宽比不同,如果设计一次,就要适应所有的屏幕(包括PC),这个几乎是不可能的。主要有以下三种情况:1. 如果等比例缩放,内部位置关系会发生变化,会严重影响用户体验;同时,设备屏幕之间不存在等比例的关系,所以同样会有部分屏幕内容无法显示或留白边;
2. 如果把小屏幕适配好,放在更高的大屏幕里面,那两边就会有白边;或者把图扯大,这样就会变形;
3. 如果把大屏幕适配好,放在小屏幕中,就有些部分会丢失。
除非借助未来的AI(人工智能)的发展,否则很难自动解决这个问题。以前的网站设计,其实也是分开几种版面进行设计的,例如,根据宽度为多少时候采用一种设计板式。
所以,我就纳闷了,现在HTML5工具到底是如何实现感应式的呢?
经研究发现,一共有两种方式:
第一种,伪“感应式”设计:(HTML5模板类方案)
上图是HTML5模板类测试结果,依次是iPhone4、iPhone5、iPhone6
可以看出iPhone4时,变形最严重,iPhone5效果最好,iPhone6是等比例缩放后,两侧边缘,有些像素显示不了。
因此,这种“感应式”,称之为伪“感应式”HTML5工具,在设计时不会留白边,但是要求尽量把内容都往中间放,需要设计一张名为“背景”的底图,用于拉伸时用。
存在的问题:
1. 内容都要居中放置,别放上下个边;例如,把按钮放到最下面,iPhone打开后,就会看不到按钮;
2. 不可能适应PC、Pad等设备。
结论:
简单、应急时使用。
第二种,多版面感应式设计:(VXPLO互动大师方案)
用于互动大师,通过添加 Device控件的方式,实际上还是需要设计几个版面(设计上多数可以Ctrl-C +Ctrl-V,所以设计上并不算麻烦),因此本质上是真正的“感应式”设计,只要稍微勤快点儿,是可以一个URL地址,完美适应多个屏幕的,包括PC和Pad。用于互动大师,通过添加 Device控件的方式,实际上还是需要设计几个版面(设计上多数可以Ctrl-C +Ctrl-V,所以设计上并不算麻烦),因此本质上是真正的“感应式”设计,只要稍微勤快点儿,是可以一个URL地址,完美适应多个屏幕的,包括PC和Pad。
结论:要做真正的“感应式”设计,自动适应多个屏幕,又不想写代码,就只能用互动大师http://vxplo.cn去做。设计中不会出现任何变形或丢失情况,不过需要多设计几个版面,一般如果是手机端的轻应用设计iPhone 4 5 6的分辨率就可以了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)