响应式布局

    前两天在做一个有关于问卷项目的前端开发,其中主要涉及到两方面的内容。第一个方面就是问卷需要同时涉及到pc端和手机端两个部分,更侧重与手机端的展示。第二个方面就是代码是嵌入到第三方代码中,同时需要在第三方平台投放和统计,牵扯到js跨域问题。

    首先说一下手机端开发遇到的一些问题和总结吧。(其实手机端有太多的点需要注意,这里只是说了一些这个项目遇到的,之后会慢慢补充)

响应式布局

因为要兼容pc端,同时是在第三方中嵌入代码,没有办法开发两套css来适应页面,所以运用了响应式布局。

实现响应式布局主要需要完成下面几个步骤:

1. 首先在head标签添加

<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">

具体的参数意义:

meta 标签的viewport属性,是在移动设备上设置原始大小,显示和是否缩放的声明。可以使用的参数设置如下∶

width : viewport的宽度

height : viewport的高度

initial-scale : 初始的缩放比例

minimum-scale : 允许用户缩放到的最小比例

maximum-scale : 允许用户缩放到的最大比例

user-scalable : 用户是否可以手动缩放

2. 设置媒体检测

PC端:

@media screen and (min-1280px) {
  #head { … }
  #content { … }
  #footer { … }
}

手机端:

@media screen and (min-320px) and (max- 414px){

}

移动端常见的开发技巧

1. 在不使用响应式布局的情况下,宽度应尽量使用百分比来表示

2. 元素尽量不要使用absolute,使用的话在外面套一层relative

    如果使用absolute来布局的话,可能会因为分辨率的不同而导致元素的位置偏移。因为当父元素不设置relative时absolute的left,top等数值是相对于整个浏览器的宽高作为参考值。当然如果不得不使用absolute的时候,把可以控制的父元素设置为relative元素,这样可以保证局部的宽高是不变的,不会因为分辨率的不同而导致显示错位等情况。

3. 设置文本,使用em或rem

html {
    font-size: 62.5%;
}
div {
    font-size: 1rem;
}

原理:

浏览器约定:1em = 16px

em是相对于父元素的大小

rem是相对于根目录的大小

为了改变1rem = 16px的对应关系,因此设置html {font-size: 62.5%},这样之后的设置就可以按照1rem = 10px的关系来换算了。

em也是同理的,只不过可能会因为父元素的大小而改变。

rem的原理是一致的,只不过rem的便捷性在于它是相对于根目录的字体大小来决定的,不会因为父元素的大小改变而改变。

rem兼容性:(ie9.0+,firefox,chrome都支持了,如果不考虑兼容低版本ie就可以使用,恰好我们的项目不需要)

image

p.s.  非常感谢@流云诸葛简单的3步设置,让你的博客园更漂亮!的博文,借用了一下里面的css。

原文地址:https://www.cnblogs.com/Candybunny/p/5357543.html