移动WEB开发之rem布局

1,rem基础

rem是一个相对单位,类似于em,em是父元素字体大小

不同的是rem的基准是相对于html元素的字体大小

rem的优点就是可以通过修改html里面的文字大小来改变页面中元素的大小,可以整体控制

html{font-size: 14px;
}
div{width: 20rem;
}

 2,媒体查询

2.1 什么是媒体查询

媒体查询是CSS3新语法

使用@media查询,可以针对不同的媒体类型定义不同的样式

@media可以针对不同的屏幕尺寸设置不同的样式

当你重置浏览器大小的过程中,页面也会根据浏览器的宽度和高度重新渲染页面

目前针对很多苹果手机,Android手机,平板等设备都用得到多媒体查询

2.2 语法规范

@media mediatype and|not|only (media feature){

        CSS-Code;

}

用@media开头 注意@符号

mediatype媒体类型

关键字 and not only

media feature 媒体特性 必须有小括号包含

1.mediatype查询类型

将不同的终端设备划分成不同的类型,称为媒体类型

值                                        解释说明

all                                   用于所有设备

print                               用于打印机和打印预览

screen                           用于电脑屏幕、平板电脑、智能手机等

 2,关键字

关键字将媒体类型或多个媒体特性连接到一起作为媒体查询的条件

and        可以将多个媒体特性连接到一起,相当于"且"的意思

not        排除某个媒体类型,相当于"非"的意思,可以省略

only      指定某个特定的媒体类型,可以省略

  3,媒体特性

每种媒体类型都具有各自不同的特性,根据不同媒体类型的媒体特性设置不同的展示风格。暂且了解三个,注意姚加()包含

值                                        解释说明

width                        定义输出设备中页面可见区域的宽度

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

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

@media screen and (max-width:800px){body{background-color: pink;}}

2.3 引入资源(理解)

当样式比较繁多的时候,我们可以针对不同的媒体使用不同stylesheets(样式表)

原理就是 直接在link中判断设备的尺寸,然后引入不同的css文件

引入资源就是针对于不同的屏幕尺寸 调用不同的css文件

<link rel="stylesheet" href="styel320.css" media="screen and (min-width:320px)">
<link rel="stylesheet" href="style640.css" media="screen and (min-width:640px)">

3,Less基础

3.1 维护css的弊端

CSS是一门非程序式语言,没有变量、函数、SCOPE(作用域)等概念

CSS需要书写大量看似没有逻辑的代码

不方便维护及扩展,不利于复用

CSS没有很好的计算能力

3.2 Less介绍

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

Less是一门CSS预处理语言,它扩展了CSS的动态特性

3.3 Less变量

变量是指没有固定的值,可以改变的。因为我们CSS值的一些颜色和数值等经常使用

@变量名:值;

@color:pink;
body{background-color: @color;
}
div{color:@color;
}

变量命名规范

必须有@为前缀、不能包含特殊字符、不能以数字开头、大小写敏感 

3.4 Less嵌套

子元素的样式直接写到父元素里面就好了

header{.logo{width: 300px;}
}

如果有伪类选择器、交集选择器、伪元素选择器 我们内层选择器的前面需要加&

a{&:hover{color: blue;}
}

3.5 Less运算

任何数字、颜色或者变量都可以参与运算,就是Less提供了加(+)、减(-)、乘(*)、除(/)算术运算

注意:

运算符的左右必须敲一个空格隔开

两个数参与运算,如果只有一个数有单位,则最后的结果就以这个单位为准

两个数参与运算,如果两个数都有单位,而且单位不一样,最后结果以第一个单位为准

@border:5px + 5;div{width: 200px - 50;height: 200px * 2;border: @border solid red;background-color: #666-#222;}img{width: 82 / 50rem;height: 82 / 50rem;}

4,rem适配方案

4.1 rem实际开发适配方案

① 按照设计稿与设备宽度的比例,动态计算并设置html根标签的font-size大小;(媒体查询)

② CSS中,设计稿的宽、高、相对位置等取值,按照同等比例换算为rem为单位的值;

4.2 rem适配方案技术使用(市场主流)

技术方案1:        less        媒体查询        rem

技术方案2(推荐):        flexible.js        rem

4.3 rem实际开发适配方案1

rem+媒体查询+less技术

1,设计稿常见尺寸宽度

设备                                常见宽度

iPhone4.5                        640px

iPhone678                       750px

Android                           常见320px、360px、375px、384px、400px、414px、500px、

                                       720px,大部分4.7~5寸的安卓设备为720px

一般情况下,我们以一套或两套效果图适应大部分的屏幕,放弃极端屏或对其优雅降级,牺牲一些效果 现在基本以750为准

① 首先我们选一套标准尺寸 750为准

② 我们用屏幕尺寸 除以 我们划分的份数 得到了 html 里面的文字大小 不同屏幕下得到的文字大小是不一样的

③ 页面元素的rem值 = 页面元素在750像素下的px值 / html里面的文字大小

将common.less引入到index.less里面,语法:

//在index.less中导入common.less文件

@import "common" (空格)

 @import  导入的意思  可以把一个样式文件导入到另外一个样式文件里面

link  是把一个 样式文件引入到html页面里面

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/452429.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自动化测试报告生成【Allure】

之前尝试使用过testNG自带的测试报告、优化过reportNG的测试报告&#xff0c;对这两个报告都不能满意。后经查找资料&#xff0c;发现有个神器&#xff1a; Allure&#xff08;已经有allure2了&#xff0c;笔者使用的就是allure2&#xff09;&#xff0c;生成的测试报告与上述…

笔记---容斥原理

AcWing,890.能被整除的数 给定一个整数 n n n 和 m m m 个不同的质数 p 1 , p 2 , … , p m p_{1},p_{2},…,p_{m} p1​,p2​,…,pm​。 请你求出 1 ∼ n 1∼n 1∼n 中能被 p 1 , p 2 , … , p m p_{1},p_{2},…,p_{m} p1​,p2​,…,pm​ 中的至少一个数整除的整数有多少…

一篇文章搞懂CNN(卷积神经网络)及其所含概念

目录 1. 什么是卷积神经网络&#xff1a;2. 应用领域&#xff1a;3. 架构&#xff1a;4. 卷积层的参数和名词参数&#xff1a;名词&#xff1a; 5. 注意&#xff1a;6. 经典网络&#xff1a;小结&#xff1a; 当下&#xff0c;计算机视觉在人工智能领域中扮演着至关重要的角色。…

[word] word中如何打出下横线 #其他#其他#其他

word中如何打出下横线 1、电脑打开word文档。 2、打开进入word文档后&#xff0c;在正文处点击鼠标右键&#xff0c;然后选择字体选项。 3、进入字体选项页面后&#xff0c;点击效果中的删除线然后点击界面下方的确定选项。 4、选择删除线之后&#xff0c;返回word正文处一直…

【蓝桥杯选拔赛真题64】python数字塔 第十五届青少年组蓝桥杯python 选拔赛比赛真题解析

python数字塔 第十五届蓝桥杯青少年组python比赛选拔赛真题 一、题目要求 (注:input()输入函数的括号中不允许添加任何信息) 提示信息: 数字塔是由 N 行数堆积而成,最顶层只有一个数,次顶层两个数,以此类推。相邻层之间的数用线连接,下一层的每个数与它上一层左上…

网工内推 | 金融业网络安全岗,最高40K*15薪,CISP认证优先

01 国泰产险 招聘岗位&#xff1a;资深信息安全工程师 职责描述&#xff1a; 1、负责公司云平台业务系统的安全规划设计&#xff0c;协助业务系统制定安全解决方案&#xff1b; 2、负责建立公司信息安全标准&#xff0c;制定平台安全策略&#xff0c;安全加固&#xff0c;防范…

【leetcode题解C++】450.删除二叉搜索树中的节点 and 669.修剪二叉搜索树 and 108.将有序数组转换为二叉搜索树

450. 删除二叉搜索树中的节点 给定一个二叉搜索树的根节点 root 和一个值 key&#xff0c;删除二叉搜索树中的 key 对应的节点&#xff0c;并保证二叉搜索树的性质不变。返回二叉搜索树&#xff08;有可能被更新&#xff09;的根节点的引用。 一般来说&#xff0c;删除节点可…

Android学习之路(27) ProGuard,混淆,R8优化

前言 使用java编写的源代码编译后生成了对于的class文件&#xff0c;但是class文件是一个非常标准的文件&#xff0c;市面上很多软件都可以对class文件进行反编译&#xff0c;为了我们app的安全性&#xff0c;就需要使用到Android代码混淆这一功能。 针对 Java 的混淆&#x…

力扣383周赛第三题

本题的难点其实不在思路上&#xff0c;而是有些人遇到这种题就不想做了&#xff0c;题目太长&#xff0c;有点读不懂题。 只要先耐心下来把题读懂之后这题其实就没那么难了&#xff0c;读懂题之后还有一个关键点就是&#xff0c;我们怎么在1e8时间复杂度之内跑过呢&#xff1f…

问题:以下关于搜索OCPC说法错误的是()? #知识分享#知识分享#媒体

问题&#xff1a;以下关于搜索OCPC说法错误的是&#xff08;)&#xff1f; A&#xff0e;OCPC进入第二阶段&#xff0c;不能随意更换转化目标和页面 B&#xff0e;OCPC可以直接跳过第一阶段&#xff0c;直接开始跑第二阶段 C&#xff0e;开启OCPC计划后&#xff0c;系统就会…

Flink生产环境常见问题及解决方法

在Flink生产环境中&#xff0c;可能会遇到一些常见的问题。下面简单的介绍几个常见问题&#xff0c;并且提供一些解决方法&#xff0c;来帮助你更好地应对这些问题。 故障转移和高可用性 Flink提供了故障转移和高可用性机制&#xff0c;但在配置和使用时可能会遇到问题。如果…

Linux 网络编程 + 笔记

协议&#xff1a;一组规则 分层模型结构&#xff1a; OSI七层模型&#xff1a;物理层、数据链路层、网络层、传输层、会话层、表示层、应用层TCP/IP 4层模型&#xff1a;链路层/网络接口层、网络层、传输层、应用层 应用层&#xff1a;http、ftp、nfs、ssh、telnet、传输层&am…