移动web开发——rem布局

一,rem基础

1.1 rem单位

  • rem的基准是相对于html元素的字体大小,可以很好控制整个页面元素大小
/* 根html 为 12px */
html {
   font-size: 12px;
}
/* 此时 div 的字体大小就是 24px */       
div {
    font-size: 2rem;
}

二,媒体查询

2.1 什么是媒体查询

  • 使用@media查询,可以针对不同的媒体类型定义不同的样式
  • @media 可以针对不同的屏幕尺寸设置不同的样式
  • 当你重置浏览器大小的过程中,页面也会根据浏览器的宽度和高度重新渲染页面
  • 目前针对很多苹果手机、Android手机,平板等设备都用得到多媒体查询

2.2 媒体查询语句规范

  • 用 @media开头 注意@符号
  • mediatype 媒体类型
  • 关键字 and not only
  • media feature 媒体特性必须有小括号包含
@media mediatype and|not|only (media feature) {
     CSS-Code;
}
@media

2.2.1 mediatype 查询类型

  • all 用于所有设备
  • print 用于打印机和打印预览
  • scree 用于电脑屏幕,平板电脑,智能手机等

2.2.2 关键字

  • and:可以将多个媒体特性连接到一起,相当于“且”的意思。
  • not:排除某个媒体类型,相当于“非”的意思,可以省略。
  • only:指定某个特定的媒体类型,可以省略。

2.2.3 媒体特性

width    /* 定义输出设备中页面可见区域的宽度*/
min-width    /* 定义输出设备中页面最小可见区域的宽度 */
max-width    /* 定义输出设备中页面最大可见区域的宽度*/

2.2.4 媒体查询书写规则

  • 媒体查询要按照从小到大的顺序来写

三,less基础

less 中文网址 :http://lesscss.cn/

3.1 less 嵌套

// 将css改为less
/* less样式书写*/
#header {
    .logo{
        width:300px;
    }
}
/* css样式生成*/
#header .logo{
width:300px;
}

(交集|伪类|为元素选择器),利用 & 进行连接

/* css样式*/
a;hover{
      color:red;
}
/* less样式*/
a{
  &:hover{
        color:red;
  }
}

3.2 less 运算

/* Less 里面写*/
@width:10px + 5;
 div {
    border: @witdh solid red;
}
/*生成的css*/
div {
  border: 15px solid red;
}
/*Less 甚至还可以这样 */
width: (@width + 5) * 2;   
  • 任何数字,颜色或者变量都可以参加运算。
  • 乘号(*)和除号(/)的写法
  • 运算符中间左右有个空格隔开 1px + 5
  • 对于两个不同的单位的值之间的运算,运算结果的值取第一个值的单位
  • 如果两个值之间只有一个值有单位,则运算结果就取该单位

四,rem 适配方案

技术方案:

1.less+rem+媒体查询

2.lflexible.js+rem

4.1 rem实际开发适配方案1

①假设设计稿是750px

②假设我们把整个屏幕划分为15等份(划分标准不一可以是20份也可以是10等份)

③每一份作为html字体大小,这里就是50px

④那么在320px设备的时候,字体大小为320/15就是 21.33px

⑤用我们页面元素的大小除以不同的 html字体大小会发现他们比例还是相同的

⑥比如我们以750为标准设计稿

⑦一个100100像素的页面元素在 750屏幕下, 就是 100/ 50 转换为rem 是 2rem2rem 比例是1比1

⑧320屏幕下, html字体大小为21.33 则 2rem= 42.66px 此时宽和高都是 42.66 但是宽和高的比例还是 1比1

⑨但是已经能实现不同屏幕下 页面元素盒子等比例缩放的效果

总结:

①最后的公式:页面元素的rem值 = 页面元素值(px) / (屏幕宽度 / 划分的份数)

②屏幕宽度/划分的份数就是 htmlfont-size 的大小

③或者:页面元素的rem值 = 页面元素值(px) / html font-size 字体大小

4.2 rem实际开发中的使用

  • 页面元素rem计算公式:页面元素的px / html 字体的大小 50px(屏幕为750px的时候)也可以给字体大小定义一个变量 @开头
  • 在 index.less 中导入 common.less 文件 使用@import “common”
  • @import 导入的意思 可以把一个样式文件导入到另一个样式文件里面
@import "要导入的css样式文件路径";
less文件里面只能导入less样式
vertical-align:top; 解决文本下坠

<script src:"js文件的路径"></script>千万不要忘记链接js文件路径。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容