移动WEB开发之-REM(rem)布局

2023-11-07

目录

移动WEB开发之REM布局

rem基础

rem单位

媒体查询

什么是媒体查询

媒体查询语法规范

1.mediatype 查询类型

2.关键字

3.媒体特性

4.媒体查询书写规则

less 基础

维护css弊端

Less 介绍

Less 嵌套

Less 运算

rem适配⽅案

rem实际开发适配⽅案

总结:

苏宁⾸⻚

1、 技术选型

2、搭建⽂件结构

3、设置视⼝标签以及引⼊初始化样式

4、设置公共common.less⽂件


移动WEB开发之REM布局

rem基础

rem单位

rem (root em)是⼀个相对单位,类似于em,em是⽗元素字体⼤⼩。 不同的是rem的基准是相对于html元素的字体⼤⼩。 ⽐如,根元素(html)设置font-size=12px; ⾮根元素设置width:2rem; 则换成px表 示就是24px。

/* 根html 为 12px */
html {
 font-size: 12px;
}
/* 此时 div 的字体⼤⼩就是 24px */ 
div {
 font-size: 2rem;
}

rem的优势:⽗元素⽂字⼤⼩可能不⼀致, 但是整个⻚⾯只有⼀个html,可以很好 来控制整个⻚⾯的元素⼤⼩。

媒体查询

什么是媒体查询

媒体查询(Media Query)是CSS3新语法。

  • 使⽤ @media查询,可以针对不同的媒体类型定义不同的样式
  • @media 可以针对不同的屏幕尺⼨设置不同的样式
  • 当你重置浏览器⼤⼩的过程中,⻚⾯也会根据浏览器的宽度和⾼度重新渲染⻚ ⾯
  • ⽬前针对很多苹果⼿机、Android⼿机,平板等设备都⽤得到多媒体查询

媒体查询语法规范

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

1.mediatype 查询类型

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

screen

2.关键字

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

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

3.媒体特性

每种媒体类型都具体各⾃不同的特性,根据不同媒体类型的媒体特性设置不同 的展示⻛格。我们暂且了解三个。 注意他们要加⼩括号包含

 

4.媒体查询书写规则

注意: 为了防⽌混乱,媒体查询我们要按照从⼩到⼤或者从⼤到⼩的顺序来 写,但是我们最喜欢的还是从⼩到⼤来写,这样代码更简洁

 

less 基础

维护css弊端

CSS 是⼀⻔⾮程序式语⾔,没有变量、函数、SCOPE(作⽤域)等概念。

  • CSS 需要书写⼤量看似没有逻辑的代码,CSS 冗余度是⽐较⾼的。
  • 不⽅便维护及扩展,不利于复⽤。
  • CSS 没有很好的计算能⼒
  • ⾮前端开发⼯程师来讲,往往会因为缺少 CSS 编写经验⽽很难写出组织良好 且易于维护的 CSS 代码项⽬。

Less 介绍

Less(LeanerStyle Sheets 的缩写)是⼀⻔ CSS扩展语⾔,也成为CSS预处理器。 做为 CSS的⼀种形式的扩展,它并没有减少CSS的功能,⽽是在现有的CSS语法 上,为CSS加⼊程序式语⾔的特性。 它在CSS 的语法基础之上,引⼊了变量,Mixin(混⼊),运算以及函数等功能, ⼤⼤简化了 CSS 的编写,并且降低了 CSS的维护成本,就像它的名称所说的那 样,Less可以让我们⽤更少的代码做更多的事情。 Less中⽂⽹址:Less 中文网 常⻅的CSS预处理器:Sass、Less、Stylus ⼀句话:Less是⼀⻔ CSS 预处理语⾔,它扩展了CSS的动态特性。

Less 编译 vocode Less 插件 Easy LESS 插件⽤来把less⽂件编译为css⽂件 安装完毕插件,重新加载下 vscode。 只要保存⼀下Less⽂件,会⾃动⽣成CSS⽂件。

 

Less 嵌套

// 将css改为less
#header .logo {
 width: 300px;
}
#header {
 .logo {
 width: 300px;
 }
}

如果遇⻅ (交集|伪类|伪元素选择器) ,利⽤&进⾏连接

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

Less 运算

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

/*Less ⾥⾯写*/
@witdh: 10px + 5;
div {
 border: @witdh solid red;
}
/*⽣成的css*/
div {
 border: 15px solid red;
}
/*Less 甚⾄还可以这样 */
width: (@width + 5) * 2;
  • 乘号(*)和除号(/)的写法
  • 运算符中间左右有个空格隔开 1px + 5
  • 对于两个不同的单位的值之间的运算,运算结果的值取第⼀个值的单位
  • 如果两个值之间只有⼀个值有单位,则运算结果就取该单位

rem适配⽅案

1.让⼀些不能等⽐⾃适应的元素,达到当设备尺⼨发⽣改变的时候,等⽐例适配当 前设备。

2.使⽤媒体查询根据不同设备按⽐例设置html的字体⼤⼩,然后⻚⾯元素使⽤rem 做尺⼨单位,当html字体⼤⼩变化元素尺⼨也会发⽣变化,从⽽达到等⽐缩放的适 配。

rem实际开发适配⽅案

①假设设计稿是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 字体⼤⼩

苏宁⾸⻚

苏宁⾸⻚地址 :苏宁⾸⻚

1、 技术选型

⽅案:我们采取单独制作移动⻚⾯⽅案 技术:布局采取rem适配布局(less + rem + 媒体查询) 设计图: 本设计图采⽤ 750px 设计尺⼨

2、搭建⽂件结构

 

3、设置视⼝标签以及引⼊初始化样式

<meta name="viewport" content="width=device-width, userscalable=no, initial-scale=1.0, maximumscale=1.0, minimum-scale=1.0">
<link rel="stylesheet" href="css/normalize.css">

4、设置公共common.less⽂件

  • 新建common.less 设置好最常⻅的屏幕尺⼨,利⽤媒体查询设置不同的html 字体⼤⼩,因为除了⾸⻚其他⻚⾯也需要
  • 我们关⼼的尺⼨有 320px、360px、375px、384px、400px、414px、 424px、480px、540px、720px、750px
  • 划分的份数我们定为 15等份
  • 因为我们pc端也可以打开我们苏宁移动端⾸⻚,我们默认html字体⼤⼩为 50px,注意这句话写到最上⾯
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

移动WEB开发之-REM(rem)布局 的相关文章

  • flex伸缩布局看着一篇就够啦

    flex伸缩布局 flex弹性概念 弹性盒子是一种按行或者按列布局元素的一种布局方式 它是需要父子盒子嵌套使用的 作用在父盒子 容器 上的属性有 flex direction 改变轴方向 flex wrap 换行 flex flow 前两项
  • Flex布局实战详解

    Flex布局详解 1 父项属性 flex direction 设置主轴的方向 justify content 设置主轴上的子元素排列方式 flex wrap 设置子元素是否换行 align content 设置侧轴上的子元素排列方式 多行
  • 弹性盒子(Flex)相关属性全解析

    目录 基本介绍 添加在父元素上的属性 添加在flex容器上的 一 设置为弹性布局 display flex 二 修改主轴的属性 flex direction 三 设置子元素是否折换 flex wrap 四 设置主轴的对齐方式 justify
  • CSS3背景渐变

    我们经常可以看到有些背景色并不是纯色 而是好看的渐变色 css3知我懂我 给我们提供了制作渐变背景色的属性 渐变主要包括线性渐变和径向渐变 接下来逐一介绍用法 1 线性渐变 线性渐变 linear gradients 表示颜色沿着一条直线过
  • box-shadow 设置后看不到的问题

    引子 在修复问题的时候 发现一个元素设置了 box shadow 属性 其它的元素也有公用 但这个元素的阴影看不见 试着把颜色值变的更明显 但还是看不到 问题示例 示例二维码 Origin My GitHub 问题原因 首先想到是不是属性写
  • Web移动端-touch事件

    一 引入 在一个项目demo中 实现单指触控卡片的向任意方向的拖动效果 网上没有现成的插件 所以只好原生js来写 产品要求需要禁止掉多点触控 这个过程很让人头疼 试了很多方法 都不太实现 后来仔细研究 测试了一下移动端的三个常用事件 二 事
  • 网页按钮点击动画

    要求 一个按钮 每点击一次在大小可随时变化的按钮表面生成一个实心圆形 对每个圆形配置的时间 T T T 单位 毫秒 内有如下过程 第 i i i次点击生成一个圆形
  • css如何设置背景颜色透明?css设置背景颜色透明度的两种方法介绍

    在网页布局中有时为了网页的整体美观 可能需要将网页中的某些部分设置为背景颜色透明 那么如何设置背景颜色透明呢 本篇文章就来给大家介绍一下css设置背景颜色透明的方法 在css中设置背景颜色透明的方法有两种 一种是通过rgba方式设置 另一种
  • 怎么理解回流跟重绘?什么场景下会触发?

    目录 一 什么是回流 下面这些操作会导致回流 二 什么是重绘 下面这些操作会导致重绘 除此之外还有一些其他引起重绘行为 三 如何避免回流与重绘 减少回流与重绘的措施 一 什么是回流 当渲染树中部分或者全部元素的尺寸 结构或者属性发生变化时
  • 掘金个人主页头像旋转效果

    img src https sf1 ttcdn tos pstatp com img user avatar d1d3c1b115358ea70f51edcd697b58b2 300x300 image alt 钱端挖掘机师傅的个人资料头像
  • css根据某个角旋转,设置旋转中心点

    前言 css3里面是有动画的属性的 里面有个旋转 那么旋转怎么来根据元素的不同点来旋转呢 这里分享下方法 实现源码 1 旋转的代码 transform rotate 7deg 旋转的兼容性写法 ms transform rotate 7de
  • 函数防抖知识要点

    函数防抖 debounce JavaScript 中的函数大多数情况下都是由用户主动调用触发的 比如说点击 拖拽 改变浏览器尺寸 提交表单等 除非是函数本身的实现不合理 否则一般不会遇到跟性能相关的问题 但是在一些少数情况下 函数的触发不是
  • 随手写系列——写一个凯撒密码转换页面

    文章目录 先展示效果 H5编写 C3编写 JS编写 方法一 过程版 JS编写 方法二 对象版 代码获取 先展示效果 因为主要是实现功能 所以CSS写的很粗糙 H5编写 基础结构如下 先构成最外面的大盒子 box 然后 inner gt p装
  • ElementUi的el-tree组件样式修改

    ElementUi的el tree组件样式修改 需求如下 下拉图标的修改 element ui中的原本的基本样式是这样的 所以第一步呢 就是要把这个下拉按钮的样式修改成加号 在vue文件中 修改样式即可 vue的项目在写样式的时候 回家上s
  • HTML+CSS3 5个炫酷的loading

    为了方便大家方便CV 每个loading对应一个html文件 文件下载压缩包 下载地址 https download csdn net download m0 48850204 20432352 spm 1001 2014 3001 550
  • css图片不断放大缩小的动画效果

    img class move img width 26px src assets img btn coupon 2x png alt move img animation name scaleDraw 关键帧名称 animation tim
  • 企微报错60020

    errcode 60020 errmsg not allow to access from your ip hint 1655882753557010848204971 from ip more info at https open wor
  • 利用背景渐变实现边框样式

    css实现信封边框和虚线样式 利用线性渐变背景以及背景重复完成 1 利用渐变背景实现信封边框样式 div class letter border div letter border margin 100px width 750px heig
  • 第8章 多媒体嵌入

    学习目标 了解视频 音频嵌入技术 能够总结HTML5视频 音频嵌入技术的优点 了解常用的视频文件格式和音频文件格式 能够归纳HTML5支持的视频和音频格式 掌握HTML5中视频的嵌入方法 能够在HTML5页面中添加视频文件 掌握HTML5中
  • gird布局隔行格列修改样式

    使用 nth child 选择器和公式 an b 两列隔行

随机推荐

  • Ubuntu rc.local 的开启与配置

    目录 rc local 简介 rc local 的配置流程 rc local 服务的管理 rc local 服务显示状态 rc local 服务的启动 rc local 服务的停止 rc local 服务使能 gt 开机依旧生效 rc lo
  • 如何在 Cockpit 中管理虚拟机

    Cockpit 是一个很将整个服务器置于一个集中的控制面板中 并对它们进行相当程度的控制 还可以在Cockpit中创建和管理虚拟机 环境 Centos8 安装Cockpit 要使用 Cockpit 创建和管理虚拟机 必须在运行 Cockpi
  • Web前端学习:JavaScript基础 【HTML DOM操作】

    目录 一 认识DOM Document 二 查找HTML元素 1 查找HTML元素的方式 以id查找HTML元素为例 编辑 window onload方法 三 DOM 常用事件 1 DOM常用事件表 2 DOM 常用事件的用法 以oncli
  • 音视频技术学习博客

    云天之巅 http blog yundiantech com log blog 音视频同步 https blog csdn net myvest article details 97416415
  • 查看docker日志的方法

    查看docker日志的几种方法 1 实时查看日志 2 查看某一段的日志 3 容器是否启动成功 4 查看某个日期至今的所有日志 并持续打印 docker logs OPTIONS CONTAINER OPTIONS说明 f 跟踪日志输出 si
  • MySQL数据库增添改删数据

    DDL 表结构 create alter drop DML 表内容 insert update delete 添加 修改 删除 DQL select from 表名 代表所有的字段 投影操作 select from 表名 where id
  • 有意思的可变数组依据tomcat生命周期的lifeSupport

    依据tomcat源码中的LifecycleSupport addLifecycleListener package com array public class ArrayTest private static String str1 ne
  • Node.js vs PHP-哪一个更适合2021年?

    无论何时我们要开始一些业务 最主要的关注是选择最好的编程语言 它可以同时构建高性能和可伸缩性的项目 有时候 你会陷入两种语言之间 很难找到最好的一种语言 选择最佳的编程工具对于企业的成功是非常重要的 您需要选择最好的编程语言 同时开发和设计
  • centos部署vue项目

    https www cnblogs com alvin niu p 9502286 html
  • DBeaverUltimate中文多连接数据库SQL 编辑查询

    DBeaverUltimate是很受欢迎的数多连接据库管理工具 对于目前比较流行的数据库都是可以使用的 专业人士也可以使用DBeaverUe使用 而且无论是MySQL还是SQLite 亦或者是PostgreSQL Oracle Micros
  • C/C++中的分配内存初始化(new和malloc)

    1 new和delete以及new 和delete include
  • iOS基础-0x00 GCD

    一 什么是GCD Grand Central Dispatch 是异步执行任务的技术之一 使用了简洁的方法 实现了极为复杂的多线程编程 GCD 的常用API 1 认识队列 1 串行队列和并发队列 串行队列 FIFO 后面一个等上一个任务完
  • No such file or directory: ‘/tmp/tmpxxx/tmpxxx.py‘

    在运行python程序过程中 No such file or directory 是个经常容易出现的错误 这个错误比较常见的原因是路径下缺乏相应的文件 或者缺少相应的python库 解决方法主要是在 1 在路径下添加缺失的文件或目录 2 在
  • unity 走马灯packageManager

    功能介绍 功能预览图 介绍 这是一个走马灯翻页的功能 功能1 点击左右两侧按钮支持切换图片 功能2 点击下方图片对应横条切换图片 功能3 左右拖拽图片支持滑动 功能4 支持n秒后自动翻滚 图片是我们用户自己添加 下方按钮个数是动态生成 可以
  • GOF设计模式(12)访问者模式

    简介 一 定义 访问者模式 Visitor Pattern 提供一个作用于某对象结构中的各元素的操作表示 它使我们可以在不改变各元素的类的前提下定义作用于这些元素的新操作 访问者模式是一种对象行为型模式 访问者模式可以为为不同类型的元素提供
  • csdn Markdown博客设置代码片高亮

    由于最近一直在写博客 觉得代码一行行都是一个颜色看起来好难受 所以就想设置一下 发现 可以在 管理 博客 gt 博客设置 中设置博客代码片的样式 于是 我就设置了 然而 写博客时发现 没有效果啊 代码还是没有样式 如下图 这是为什么呢 后来
  • 连接url中参数useSSL=true引发的缺少证书异常(使用mysql-connector)

    最近在做架构迁移 将基于oracle ejb weblogic架构的OA系统迁移至mysql tomcat环境下 在修改完数据库函数之后 启动测试的时候 遇到一个很诡异的异常 如下 The last packet successfully
  • Springboot RabbitMq源码解析之消费者容器SimpleMessageListenerContainer

    Springboot RabbitMq源码解析之配置类 Springboot RabbitMq源码解析之消息发送 一 MessageListenerContainer 在Springboot RabbitMq中 接口MessageListe
  • MinIO简单安装及使用

    MinIO简介 MinIO是一个开源的 云原生的对象存储服务器 它提供了简单 高性能 安全 可扩展的存储服务 MinIO最初是作为一个Amazon S3兼容的对象存储服务器开发的 可以通过S3 API与其他应用程序和服务进行交互 MinIO
  • 移动WEB开发之-REM(rem)布局

    目录 移动WEB开发之REM布局 rem基础 rem单位 媒体查询 什么是媒体查询 媒体查询语法规范 1 mediatype 查询类型 2 关键字 3 媒体特性 4 媒体查询书写规则 less 基础 维护css弊端 Less 介绍 Less