移动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)布局 的相关文章

  • CSS3 弹性盒子(flex、flex-direction属性、flex-wrap属性、align-items属性、align-content属性)详解

    文章目录 flex flex direction 属性 flex wrap 属性 align items 属性 align content 属性的使用 flex 在 CSS3 中给 display 属性增加了新的属性值 flex 如果一个元
  • HTML、CSS制作小米商城网页首页源码解析

    简介 这是我学习前端以来仿写的第一个项目 沿着尚硅谷李立超老师的教学视频学习 在仿写这个项目的过程中即巩固了这两周以来的知识 也增加了一些小经验 主要是老师传授 同时也让自己更加有信心学习下去 相信自己一定会实现自己的小梦想 加油 小米官网
  • css实现水平居中

    代码示例 div class box div class box1 div div 1 弹性布局 推荐 display flex 这些要添加在父级的 是父级的属性 父级添加display flex 父级添加justify content c
  • scss 中公共变量的导出方法:export

    前言 在使用vue或者react开发项目时都会用到scss 或者less等的扩展语言 那么肯定会有公共变量提取与使用 这篇文章就是记录如何导出公共css变量的 export 关键词 menuText bfcbd9 menuActiveTex
  • Flex布局实战详解

    Flex布局详解 1 父项属性 flex direction 设置主轴的方向 justify content 设置主轴上的子元素排列方式 flex wrap 设置子元素是否换行 align content 设置侧轴上的子元素排列方式 多行
  • HTML设计一个水平导航栏,完成水平导航栏下拉列表交互效果的实现。

    HTML设计一个水平导航栏 简单的完成水平导航栏下拉列表交互效果的实现 一 水平导航栏 设计要求 CSS样式分析 hello 大家好 学习之路一小步 如果有不严谨的问题请指出 我会积极学习的 一 水平导航栏 设计要求 1 使用无序列表ul及
  • position:absolute详解

    position absolute 日常开发中经常涉及元素的定位 我们都知道 绝对定位相对于最近position不为static的父级元素来定位 但其中定位的位置还是有细微的差别的 绝对定位根据left和top属性来规定绝对定位元素的位置
  • css按钮样式

    创建漂亮的 CSS 按钮的 10 个代码片段 IT程序狮子烨 1 个月前 如果你正在寻找一些高质量的 CSS 按钮的示例 那么这篇文章一定是你的 菜 在本文中 我们从 CodePen 上收集了 10 个独特的 CSS 按钮合集 并附有它们的
  • vue+element-ui el-tabs切换面板el-tab-pane切换

    在vue项目中 el tabs在页面的右侧显示 切换面板 下面的内容是正常显示的 效果如下 代码如下 父组件
  • 怎么理解回流跟重绘?什么场景下会触发?

    目录 一 什么是回流 下面这些操作会导致回流 二 什么是重绘 下面这些操作会导致重绘 除此之外还有一些其他引起重绘行为 三 如何避免回流与重绘 减少回流与重绘的措施 一 什么是回流 当渲染树中部分或者全部元素的尺寸 结构或者属性发生变化时
  • css实现响应式布局

    一 什么是响应式布局 响应式布局指的是同一页面在不同屏幕尺寸下有不同的布局 传统的开发方式是PC端开发一套 手机端再开发一套 而使用响应式布局只要开发一套就够了 响应式设计与自适应设计的区别 响应式开发一套界面 通过检测视口分辨率 针对不同
  • 随手写系列——写一个凯撒密码转换页面

    文章目录 先展示效果 H5编写 C3编写 JS编写 方法一 过程版 JS编写 方法二 对象版 代码获取 先展示效果 因为主要是实现功能 所以CSS写的很粗糙 H5编写 基础结构如下 先构成最外面的大盒子 box 然后 inner gt p装
  • css图片不断放大缩小的动画效果

    img class move img width 26px src assets img btn coupon 2x png alt move img animation name scaleDraw 关键帧名称 animation tim
  • 【uniapp小程序】—— APP项目云打包(安卓)

    前言 之前小程序系列文章写了配置页面和封装自定义组件 这次写一下开发完成我们的项目后 如何进行打包安装 本文主要讲述的是使用 uniapp打包安卓 正文 第一步 查看自己的项目的基础配置 第二步 选择打包项目 选中我们要打包的项目 方式一
  • 移动端适配-01-百分比宽度

    1 图片可以在parent中使用 1 line heigh和text align使水平和竖直居中 2 在img标签中加vertical align middle 2 3 background size 1 两个参数 background s
  • 超简单:很火的3D立体动态相册,送给心爱的那个人

    1 首先 我们一共需要三个文件 目录关系如下所示 先建index html文件吧 电脑上先创建一个 txt文件 在里面加入代码后保存 重命名为index html 记得把原来的 txt后缀覆盖 html我用的谷歌浏览器 index html
  • ADB:常用指令汇总

    常用指令
  • 面试官:元素水平垂直居中的方法有哪些?如果元素不定宽高呢?

    面试官 元素水平垂直居中的方法有哪些 如果元素不定宽高呢 一 背景 在开发中经常遇到这个问题 即让某个元素的内容在水平和垂直方向上都居中 内容不仅限于文字 可能是图片或其他元素 居中是一个非常基础但又是非常重要的应用场景 实现居中的方法存在
  • css学习之路:sass学习基础篇

    SCSS 一 动态的样式语言 让CSS有变量的概念 css有很多的缺点 语法不够强大 没有变量和合理的样式复用机制 导致难以维护 我们就可以使用动态样式语言 赋予CSS新的特性 常见的动态样式语言 scss sass scss兼容sass
  • CSS学习之路: 基础学习篇

    css基础 一 css3 概述 1 1 什么是css Cascading style sheets 层叠样式表 级联样式表 简称样式表 1 2 css作用 对页面中html元素进行美化 1 3 HTML和css的关系 HTML 负责页面结构

随机推荐

  • 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