web移动端:rem适配布局(重点)

news2024/9/29 9:37:01

目录

1. rem基础

2.媒体查询

2.1 媒体查询的概念

2.2 语法规范

2.2.1

2.2.2 关键字

2.2.3 媒体特性

 2.2 根据页面宽度改变颜色

 2.3 媒体查询+rem 实现元素动态大小变化

 2.4 引入资源(理解)

2.4.1 语法规范

3. less基础

3.1 css弊端

 3.2 less介绍

3.3 less使用

3.3.1 less变量

3.3.2 less编译以插件

3.3.3 less嵌套

3.3.4 less运算(重点)

4. rem适配方案

4.1 rem实际开发适配方案

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

4.2.1 技术方案一

4.2.2 技术方案二(推荐)

5. 苏宁易购案例制作

5.1 技术选型

5.2 搭建相关的文件夹结构

 5.3 设置视口标签以及初始化样式

5.4 设置公共文件common.less


1. rem基础

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

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

比如,根元素(html)设置font-size=12px,width=12rem,则换成px就是24px

rem优点:修改html里面文字大小来改变页面的元素的大小控制整体

2.媒体查询

2.1 媒体查询的概念

媒体查询(media query)是css3的新语法

使用@media可以针对不同的尺寸设置不同的样式

重置浏览器的大小,页面高度和宽度也会重新渲染页面

目前苹果手机、Android手机、平板等都用到多媒体查询

2.2 语法规范

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

        css-code;

}

  •  mediatype 媒体类型
  • and|only|not 关键字
  • media fearture 媒体特性

2.2.1

 注意:上面的图片scree单词写错了,正确的是screen!

2.2.2 关键字

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

  • and:连接多个媒体,相当于“且”
  • not: 相当于“非”
  • only:指定媒体类型,可以省略

2.2.3 媒体特性

每个媒体都有不同的特性,根据不同来设置不同的展示风格,注意它们要用()包含

 2.2 根据页面宽度改变颜色

思路:

  • 按照从大到小(从小到大)的思路
  • max-width和min-width都是包含等于的
  • 小于等于1000蓝色,小于等于1200且大于1000黄色,大于1200且大于等于1500变粉色
  • 利用样式层叠性
  • sreen and 不能省略
  • 数字后面必须跟单位
  • and 前后要加空格!
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        @media screen and (max-width:1000px) {
            body {
                background-color: blue;
            }
        }

        @media screen and (min-width:1200px) {
            body {
                background-color: yellow;
            }
        }

        @media screen and (min-width:1500px) {
            body {
                background-color: pink;
            }
        }
    </style>
</head>

<body>

</body>

</html>

 2.3 媒体查询+rem 实现元素动态大小变化

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        @media screen and (min-width:320px) {
            html {
                font-size: 50px;
            }
        }

        @media screen and (min-width:640px) {
            html {
                font-size: 100px;
            }
        }

        .top {
            height: 1rem;
            font-style: 5rem;
            background-color: pink;
            text-align: center;
            line-height: 1rem;
        }
    </style>
</head>

<body>
    <div class="top">购物车</div>
</body>

</html>

 2.4 引入资源(理解)

样式比较多,针对不同的媒体(屏幕尺寸)使用不同的stylesheets(样式表)

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

如在900以上的屏幕一行显示两张图片,在900以下的屏幕一行显示一张图片

2.4.1 语法规范

<link rel="stylesheet" media="mediatype and|not|only (media feature) " href="mystylesheet.css">

 建议;媒体查询最好的方法是从小到大

3. less基础

3.1 css弊端

  1. css是一门非程序时语言,没有变量,函数,作用域等
  2. 会书写大量没有逻辑的代码,css的重复率是比较高的
  3. 不方便维护和拓展,不利于复用
  4. css没有很好的计算能力
  5. 对于开发人员,越少经验的很难写出组织很好且易于维护的css代码项目

 3.2 less介绍

less是一门css拓展语言,也称为css预处理器,在现有的css语法上,加入变量,运算,函数等功能,降低了css维护的成本

less官网:http://lesscss.cn/

常见的css预处理器:Sass、Less、Stylus

总结:less是一门css预处理语言,拓展了css的动态特性

3.3 less使用

新建一个后缀为less的文件,里面属性less语句

3.3.1 less变量

变量是没有固定得值,是可以改变的,css中1一些颜色和值

@ 变量名:值;

 变量名规范:

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

3.3.2 less编译以插件

本质上,less包含一个自定义的语法以及一个解析器,通过解析器生成对应的css文件

vscode插件:easy LESS,写完less文件保存后会自动生成对应的css文件

3.3.3 less嵌套

子元素样式直接写在父元素里面

选择器嵌套写法:

header a {

color: pink;

}

 less嵌套写法:

header {

        a {

                color :pink;

        }

}

 如果是交集|伪类|伪元素选择器,内层选择器加&

  • 内层选择器前面没有&符号,则称为解析为父选择器的后代
  • 有&符号,解析为父元素自身或父元素的伪类

 less写法:

a {

        &:hover {

                color :red;

        }

}

3.3.4 less运算(重点)

任何的数字颜色都可以参加加减乘除等算数运算

@border: 5px+8;

div {
    width: (200px/2);
    height: 200px;
    border: @border solid red;
}

注意:

  • 乘号和除号的写法(需要用括号,如(@border/3))
  • 运算符中间左右用空格隔开 1px+5
  • 对于不同的单位的值之间的运算,运算结果的值取第一个值的单位
  • 两个值只有一个有单位,则取这个单位

4. rem适配方案

4.1 rem实际开发适配方案

  1. 按照设计稿与设备宽度的比例,动态计算设置html根标签的font-size大小(媒体查询)
  2. css中,设计稿元素的宽、高、相对位置取值,按照同等比例换算为rem为单位的值

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

4.2.1 技术方案一

  • rem+媒体查询+less技术

设计稿常见的尺寸宽度:

 一般情况下,我们采用一两套做效果图,现在以1080为准

  • 动态设置html标签font-size大小
  • 假设设计稿是750px
  • 把屏幕划分15等分(划分标准不一样)(我的理解是一行可以显示15个字)
  • 每一份html字体大小,这里是50px
  • 390px设备的是,字体大小为320/15就是21.33px
  • 页面元素的大小除以不同的html字体大小发现比例是相同的
  • 比如我们用750为标准的设计稿
  • 一个100*100像素的页面元素在750屏幕下,就是100/50转换rem是2rem*2rem比例1:1(rem=物理像素/html文字大小,盒子大小=rem*font-size
  • 320屏幕下,html字体大小21.33,则2rem=42.66px,此时宽高都是42.66,但是宽高比例还是1:1
  • 但是已经实现不同屏幕下,页面元素盒子等比例缩放的效果

 元素大小取值方法:

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

屏幕宽度/划分的份数 :就是html font-size的大小

页面元素的rem值=页面元素值(px)/ font-size 字体大小 

4.2.2 技术方案二(推荐)

  • fiexible.js
  • rem

 总结:

两种方案现在都存在

方案2更简单,里面使用js代码

5. 苏宁易购案例制作

5.1 技术选型

方案:单独制作移动页面方案

技术:rem适配布局(less+rem+媒体查询)

设计图:采用750px设计尺寸

5.2 搭建相关的文件夹结构

 5.3 设置视口标签以及初始化样式

    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0,user-scalable=no maximum-scale=1.0,
    minimum-scale=1.0">
     <link rel="stylesheet" href="css/normalize.css">

5.4 设置公共文件common.less

  1. 新建common.less,设置最常见的屏幕尺寸、用媒体查询设置不同html字体大小
  2. 常见的尺寸:320px,360px,375px,384px、400px、411px、424px、480px、540px、720px、750px
  3. 划分份数为15份
  4. pc端也可以打开移动端的页面,我们默认html字体大小为50px,注意这句话写到最上面

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于SuperPoint与SuperGlue实现图像配准

基于SuperPoint与SuperGlue实现图像配准&#xff0c;项目地址https://github.com/magicleap/SuperGluePretrainedNetwork&#xff0c;使用到了特殊算子grid_sample&#xff0c;在转onnx时要求opset_version为16及以上&#xff08;即pytorch版本为1.9以上&#xff09;。SuperPoi…

计讯物联污染源自动监控系统,坚守“绿水青山就是金山银山”

近年来&#xff0c;“绿水青山就是金山银山”的理念在全国各地落地生根&#xff0c;各大城市积极构建环境监测体系&#xff0c;旨在让生态文明成色更足&#xff0c;绿色发展底色更亮。计讯物联污染源自动监控系统作为生态环境部门监督企业排污的“火眼金睛”&#xff0c;充分运…

apifox持续集成+java+企微机器人+xxljob定时推送

总览&#xff1a; apifox做接口测试后&#xff0c;把用例合并组装成测试套件&#xff0c;然后apifox-cli通过终端命令实现把套件执行后&#xff0c;输出本地文件的测试报告html或json。本地解析后拿到有用的解决通过定时执行推送到企微群里。 然后把html一起推到群里。 这个…

【Spark分布式内存计算框架——Spark SQL】8. Shuffle 分区数目、Dataset(上)

4.4 Shuffle 分区数目 运行上述程序时&#xff0c;查看WEB UI监控页面发现&#xff0c;某个Stage中有200个Task任务&#xff0c;也就是说RDD有200分区Partition。 原因&#xff1a;在SparkSQL中当Job中产生Shuffle时&#xff0c;默认的分区数&#xff08;spark.sql.shuffle.p…

基于STM32采用CS创世 SD NAND(贴片SD卡)完成FATFS文件系统移植与测试

一、前言 在STM32项目开发中&#xff0c;经常会用到存储芯片存储数据。 比如&#xff1a;关机时保存机器运行过程中的状态数据&#xff0c;上电再从存储芯片里读取数据恢复&#xff1b;在存储芯片里也会存放很多资源文件。比如&#xff0c;开机音乐&#xff0c;界面上的菜单图…

Selenium + python自动化测试环境搭建

selenium 是一个web的自动化测试工具&#xff0c;不少学习功能自动化的同学开始首选selenium &#xff0c;相因为它相比QTP有诸多有点&#xff1a; 免费&#xff0c;也不用再为破解QTP而大伤脑筋 小巧&#xff0c;对于不同的语言它只是一个包而已&#xff0c;而QTP需要下载安…

JSON字符串解析

目录 依赖 方法 示例 判断JSON是否合格 依赖 方法 JSON.parseObject() JSON.parseArray() 示例 Data public class OrderVo {public String name;public Integer price;public Integer count; } JSON数据 { "name": "苹果手机", "pric…

BIT.8_Linux 多线程

目录Linux线程概念什么是线程线程的优点线程的缺点线程异常线程用途Linux进程VS线程进程和线程总结Linux线程控制POSIX线程库创建线程线程ID及进程地址空间布局进程和线程ID区别内核层面&#xff1a;pid & tgid线程终止线程等待__thread 和 pthread_self()分离线程Linux线程…

《爆肝整理》保姆级系列教程python接口自动化(十七)--Json 数据处理---一次爬坑记(详解)

简介 有些 post 的请求参数是 json 格式的&#xff0c;这个前面发送post 请求里面提到过&#xff0c;需要导入 json模块处理。现在企业公司一般常见的接口因为json数据容易处理&#xff0c;所以绝大多数返回数据也是 json 格式的&#xff0c;我们在做判断时候&#xff0c;往往只…

Guava常用工具类总结

-“Null的含糊语义让人很不舒服。Null很少可以明确地表示某种语义&#xff0c;例如&#xff0c;Map.get(key)返回Null时&#xff0c;可能表示map中的值是null&#xff0c;亦或map中没有key对应的值。Null可以表示失败、成功或几乎任何情况。使用Null以外的特定值&#xff0c;会…

每日学术速递2.17

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.LG 1.Decoupled Model Schedule for Deep Learning Training 标题&#xff1a;深度学习训练的解耦模型时间表 作者&#xff1a;Hongzheng Chen, Cody Hao Yu, Shuai Zheng, Zhen Zhang,…

快速识别台式机的内存条

拿上一根内存条&#xff0c;让一个喜欢IT的识别一下&#xff0c;很多人不一定能说出点内容。 这很正常&#xff0c;IT细分领域太多了&#xff0c;很多搞IT的包括写代码的人可能都没有接触内存条。 硬件的集成度随着硬件技术的提升越来越高&#xff0c;成本也下来了&#xff0c;…

支付宝支付详细流程

1、二维码的生成二维码生成坐标 <!-- zxing生成二维码 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.3.3</version></dependency><dependency><groupId>co…

nvm 控制 node版本

nvm 官网 https://nvm.uihtm.com/ 1、卸掉nodejs&#xff0c;根据官网操作 2、如果之前安装过的nodejs,且安装的目录改变了&#xff0c;需重新配置系统环境 第一步&#xff1a;打开此电脑 > 右键属性 > 高级系统设置 > 环境变量 第二步&#xff1a; 在系统变量中选中…

新手健身准备哪些物品,健身必备蓝牙运动耳机分享

第一次运动健身应该准备什么&#xff1f;运动耳机是一款必备的装备&#xff0c;可以让我们坚持运动的动力源泉&#xff0c;在健身当中远离枯燥乏味&#xff0c;有音乐的加持下健身能够让我们更具动力&#xff0c;有哪些值得入手的蓝牙运动耳机分享呢&#xff1f;看看下面这写分…

Java反射概述

2 反射 2.1 反射概述 Java反射机制&#xff1a;是指在运行时去获取一个类的变量和方法信息。然后通过获取到的信息来创建对象,调用方法的一种机制。由于这种动态性,可以极大的增强程序的灵活性,程序不用在编译期就完成确定,在运行期仍然可以扩展 2.2 反射获取Class类的对象 …

企业的知识文档管理系统需要注重什么?安全和共享能力很重要!

编者按&#xff1a;本文指出了企业的文档管理系统比较注重的能力&#xff0c;并从知识共享和文档安全两方面介绍了老厂商天翎是如何在这块实践的。关键词&#xff1a;知识共享&#xff0c;知识安全&#xff0c;标签分类&#xff0c;智能检索&#xff0c;资料分享&#xff0c;在…

element ui 下拉菜单组件 结合springboot 实现省市区简易三级联动 动态查询 并修改地点的省市区

目录 前言&#xff1a; 一.数据库表结构&#xff1a; 二.下拉菜单组件 2.1 效果展示 2.2下拉菜单的组件代码&#xff1a; 前言&#xff1a; 本篇博客&#xff0c;通过官网的学习&#xff0c;实现下拉菜单动态数据的传递与点击事件&#xff0c;如果只是按部就班的按照官网来…

29岁从事功能测试被辞,面试2个月都找不到工作吗?

最近一个28岁老同学联系我&#xff0c;因为被公司辞退&#xff0c;找我倾诉&#xff0c;于是写下此文。 他是14年二本毕业&#xff0c;在我的印象里人特别懒&#xff0c;不爱学习&#xff0c;专业不好&#xff0c;毕业前因为都没找到合适工作&#xff0c;直接去创业了&#xf…

03:入门篇 - CTK Plugin Framework 基本原理

作者: 一去、二三里 个人微信号: iwaleon 微信公众号: 高效程序员 CTK Plugin Framework 技术是面向 C++ 的动态模型系统。该系统允许插件之间的松散耦合,并且提供了设计良好的方式来进行功能和数据的交互。此外,它没有预先对插件施加限制,这样就可以很容易地将插件的相关…