Web前端—移动Web第三天(移动Web基础、rem、less、综合案例—极速问诊)

版本说明

当前版本号[20231120]。

版本修改说明
20231120初版

目录

文章目录

  • 版本说明
  • 目录
  • 移动 Web 第三天
    • 01-移动 Web 基础
      • 谷歌模拟器
      • 屏幕分辨率
      • 视口
      • 二倍图
      • 适配方案
    • 02-rem
      • 简介
      • 媒体查询
      • rem 布局
      • flexible.js
      • rem 移动适配
    • 03-less
      • 注释
      • 运算
      • 嵌套
      • 变量
      • 导入
      • 导出
      • 禁止导出
    • 04-综合案例-极速问诊
      • 准备工作
      • 头部布局
      • 头部内容
      • banner 区域
      • 问诊类型布局
      • 问诊类型内容

移动 Web 第三天

01-移动 Web 基础

谷歌模拟器

模拟移动设备,方便查看页面效果

1681811083202

屏幕分辨率

分类:

  • 物理分辨率:硬件分辨率(出厂设置
  • 逻辑分辨率:软件 / 驱动设置

结论:以后编写代码时就要参考 逻辑分辨率 来制作了。

1681811157520

视口

作用:显示 HTML 网页的区域,用来约束 HTML 的尺寸

<!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>
</head>
<body></body>
</html>
  • width=device-width:视口宽度 = 设备宽度(逻辑分辨率的宽度)
  • initial-scale=1.0:缩放1倍(不缩放)

二倍图

概念:设计稿里面每个元素的尺寸的倍数

作用:防止图片在高分辨率屏幕下模糊失真

使用方法:

image-20231119150753537

适配方案

  • 宽度适配:宽度自适应

    • 百分比布局
    • Flex 布局
  • 等比适配:宽高等比缩放

    • rem
    • vw

02-rem

简介

  • rem单位,是相对单位

  • rem单位是相对于HTML标签的字号计算结果

    如:此时我们给html标签大小为font-size:30px , 而width:5rem; height: 3rem;最后盒子在移动端显示的大小就是(30* 5)*(30*3)=150 * 90 pxc 了。

  • 1rem = 1HTML字号大小

1、看看是否能等比例缩小/放大,看移动端的适配效果

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>div{width: 5rem;height: 5rem;background-color: pink;}</style>
</head>
<body><div> </div><script src="../js/flexible.js"></script>
</body>
</html>

就可以发现可以等比例缩小了。

image-20231119152118871

媒体查询

媒体查询能够检测视口的宽度,然后编写差异化的 CSS 样式

当某个条件成立, 执行对应的CSS样式

1681811369469

@media (width:320px) {html {background-color: green;}
}

通过对比,可以看到,符合视口宽度的背景颜色才会变成绿色,不符合的不会。

image-20231119153508734

rem 布局

目前rem布局方案中,将网页等分成10份, HTML标签的字号为视口宽度的 1/10

1681811438512

flexible.js

flexible.js 是手淘开发出的一个用来适配移动端的 js 库

核心原理就是根据不同的视口宽度给网页中 html 根节点设置不同的 font-size

【意思主要是在自己写代码的时候就不用自己写媒体查询了。】

<body>......<script src="./js/flexible.js"></script>
</body>

rem 移动适配

rem单位尺寸

  1. 确定基准根字号
  • 查看设计稿宽度 → 确定参考设备宽度(视口宽度) → 确定基准根字号(1/10视口宽度)
  • 目前大部分视口宽度为375,所以基准根字号可以旋转37.5
  1. rem单位的尺寸
  • rem单位的尺寸 = px单位数值 / 基准根字号

在上面我们可以看到,求rem的尺寸特别的麻烦,每一个都要除以37.5,这时我们就可以使用less去统一的操作。

03-less

Less是一个CSS预处理器, Less文件后缀是.less。扩充了 CSS 语言, 使 CSS 具备一定的逻辑性、计算能力

注意:浏览器不识别 Less 代码,目前阶段,网页要引入对应的 CSS 文件

VS Code 插件:Easy LESS,保存 less文件后自动生成对应的 CSS 文件

1681811545628

注释

  • 单行注释
    • 语法:// 注释内容
    • 快捷键:ctrl + /
  • 块注释
    • 语法:/* 注释内容 */
    • 快捷键: Shift + Alt + A

运算

  • 加、减、乘直接书写计算表达式
  • 除法需要添加 小括号 或 . (注:但使用 . 这种用法的话,会出现红色波浪线,易让你以为是报错的代码提示 )
  • 表达式存在多个单位以第一个单位为准

1681811616094

嵌套

作用:快速生成后代选择器

1681811640347

提示:用 & 表示当前选择器,不会生成后代选择器,通常配合伪类或伪元素使用

1681811659709

如下图所示:

image-20231119162416698

有例外,如:&表示的是当前选择器,代码写到谁的大括号里面就表示谁,不会生成后代选择器。

image-20231119170454574

变量

概念:容器,存储数据

作用:存储数据,方便使用和修改

语法:

  • 定义变量:@变量名: 数据;
  • 使用变量:CSS属性:@变量名;
// 定义变量
@myColor: pink;
// 使用变量
.box {color: @myColor;
}
a {color: @myColor;
}

导入

作用:导入 less 公共样式文件

语法:导入: @import “文件路径”;

提示:如果是 less 文件可以省略后缀

@import './base.less';
@import './common';

注:这里是在less文件中导入别的less文件哦,并不是在html文件中导入!html文件是不可以导入less文件的,可以把less文件转成css文件才能进行导入!

导出

写法:在 less 文件的第一行添加 // out: 存储URL

提示:文件夹名称后面添加 /

// out: ./index.css
// out: ./css/

禁止导出

写法:在 less 文件第一行添加: // out: false

1681811772496

04-综合案例-极速问诊

1681811796608

准备工作

  • 项目目录

1681811827562

1、建立 less 文件,并导出成 css 文件。

// out: ../css/@import "./base.less";

image-20231119204626580

下图便是 /base.less 转的 /base.css 。

image-20231119204650448

  • 引入HTML 结构
<link rel="stylesheet" href="./iconfont/iconfont.css">
<link rel="stylesheet" href="./css/index.css"><body>......<script src="./js/flexible.js"></script>
</body>

头部布局

  • HTML 结构
<!-- 头部 -->
<header>1</header>
  • less 样式
// 头部
header {display: flex;justify-content: space-between;padding: 0 (15 / @rootSize);height: (44 / @rootSize);background-color: pink;line-height: (44 / @rootSize);
}

根据设计图,一步步来弄:

image-20231119205115812

头部内容

  • HTML 结构
<a href="#" class="back"><span class="iconfont icon-left"></span></a>
<h3>极速问诊</h3>
<a href="#" class="note">问诊记录</a>
  • less 样式
.icon-left {font-size: (22 / @rootSize);
}h3 {font-size: (17 / @rootSize);
}.note {font-size: (15 / @rootSize);color: #2CB5A5;
}

1、建立好框架。

<body><!-- 头部 --><header>1</header><script src="./js/flexible.js"></script>
</body>
/* 头部 */
header{height: (44 / 37.5rem);background-color: pink;
}

image-20231119210417305

2、将头部的文字填充好,并设置好居中的位置。

<!-- 头部 --><header><a href="#" class="back">1</a><h3>极速问诊</h3><a href="#" class="note">问诊记录</a></header>
/* 头部 */
header{display: flex;justify-content: space-between;height: (44 / 37.5rem);background-color: pink;
}

image-20231119211017058

3、设置好内边距。

padding: 0 (15 / 37.5rem);

image-20231119211139842

4、设置行高。

line-height: (44 / 37.5rem);

image-20231119211317253

5、再定义。

/* 定义变量 */
@rootSize:37.5rem;/* 头部 */
header{display: flex;justify-content: space-between;padding: 0 (15 / @rootSize);height: (44 / @rootSize);line-height: (44 / @rootSize);background-color: pink;
}
<a href="#" class="back"><span class="iconfont icon-left"></span></a>

image-20231119212059538

6、将文字的大小尺寸修改好。

header .back{font-size: (22 / @rootSize);
}header h3{font-size: (17 / @rootSize);
}header .note{font-size: (15 / @rootSize);color: #2CB5A5;
}

image-20231119212555884

7、把背景颜色注销掉后,便是我们想要的背景。

image-20231119212734946

banner 区域

  • HTML 结构
<!-- banner -->
<div class="banner"><img src="./assets/entry.png" alt=""><p><span>20s</span> 快速匹配专业医生</p>
</div>
  • less 样式
// banner
.banner {margin-top: (30 / @rootSize);margin-bottom: (34 / @rootSize);text-align: center;img {margin-bottom: (18 / @rootSize);width: (240 / @rootSize);height: (206 / @rootSize);}p {font-size: (16 / @rootSize);span {color: #16C2A3;}}
}

1、插入图片。

<!-- banner区域 --><div class="banner"><img src="./assets/entry.png" alt=""><p><span>20s</span> 快速匹配专业医生</p></div>
// bannner区域
.banner{text-align: center;
}

image-20231120142931213

2、使文字部分与图片之间有间隔。

margin-top: (30 / @rootSize);
margin-bottom: (34 / @rootSize);

image-20231120143129409

3、设置宽高。

img{height: (206 / @rootSize);width: (240 / @rootSize);}

image-20231120143450210

4、图片加上底部外边距。

margin-bottom: (18 / @rootSize);

image-20231120143646361

5、修改好字体的大小。

p{font-size: (16 / @rootSize);span{color: #16C2A3;}}

image-20231120144026435

问诊类型布局

  • HTML 结构
<!-- 问诊类型 -->
<div class="type"><ul><li><a href="#"><div class="pic">1</div><div class="txt">2</div><span class="iconfont icon-right"></span></a></li><li>2</li></ul>
</div>
  • less 样式
// 问诊类型
.type {padding: 0 (15 / @rootSize);li {margin-bottom: (15 / @rootSize);padding: 0 (15 / @rootSize);height: (78 / @rootSize);border: 1px solid #EDEDED;border-radius: (4 / @rootSize);a {display: flex;align-items: center;// 内容在78里面垂直居中height: (78 / @rootSize);}}
}

1、添加两个li标签,用于装放问诊类型。

<!-- 问诊类型 --><div class="type"><ul><li>1</li><li>2</li></ul></div>
// 问诊类型
.type{padding: 0 (15 / @rootSize);
}

image-20231120144353651

2、设置内边距,边框圆角,底部外边距。

// 问诊类型
.type{padding: 0 (15 / @rootSize);li{height: (78 / @rootSize);border: 1px solid #EDEDED;border-radius: (4 / @rootSize);margin-bottom: (15 / @rootSize);}
}

image-20231120144733536

3、在li标签里再加上内边距的要求。

padding: 0 (15 / @rootSize);

image-20231120145020840

4、使类型中的三块内容在flex布局中放在一起。

<li>    <a href=""><div class="pic">1</div><div class="txt">2</div><span class="iconfont icon-right"></span></a></li>
 a{display: flex;}

image-20231120145944368

5、将名为"a"的元素设置为弹性布局容器,将子元素的垂直对齐方式设置为居中对齐。

a{display: flex;align-items: center;height: (78 / @rootSize);}

image-20231120150230839

问诊类型内容

  • HTML 结构
<div class="pic"><img src="./assets/type01.png" alt="">
</div>
<div class="txt"><h4>三甲图文问诊</h4><p>三甲主治及以上级别医生</p>
</div>
<span class="iconfont icon-right"></span>
  • less 样式
img {margin-right: (14 / @rootSize);width: (40 / @rootSize);height: (40 / @rootSize);
}
.txt {flex:1;h4 {font-size: (16 / @rootSize);color: #3C3E42;line-height: (24 / @rootSize);}p {font-size: (13 / @rootSize);color: #848484;}
}
.iconfont {font-size: (16 / @rootSize);
}

1、插入小图片。

<div class="pic"><img src="./assets/type01.png" alt=""></div>
 img{margin-right: (14 / @rootSize);height: (40 / @rootSize);width: (40 / @rootSize);}

image-20231120150735566

2、将其在其父容器中的弹性大小设置为1,即它们将平均分配父容器的空间。

.txt{flex: 1;}

image-20231120151057399

3、将两段文字及字节图标放在一起。

h4{font-size: (16 / @rootSize);line-height: (24 / @rootSize);color: #3C3E42;margin-bottom: (4 / @rootSize);}p{font-size: (13 / @rootSize);line-height: (20 / @rootSize);color: #848484;}
.iconfont{font-size: (16 / @rootSize);}

image-20231120152212242

4、补充好内容。

<li>    <a href=""><div class="pic"><img src="./assets/type02.png" alt=""></div><div class="txt"><h4>普通图文问诊</h4><p>二甲主治及以上级别医生</p></div><span class="iconfont icon-right"></span></a></li>

image-20231120152516488

需要完整源码,可点击 点我查看 跳转,进行下载。

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

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

相关文章

GNSS技术在灾害监测与应急响应中的关键作用

全球导航卫星系统&#xff08;GNSS&#xff09;技术在灾害监测与应急响应领域发挥着重要作用&#xff0c;为预防、监测和应对自然灾害提供了关键数据支持。本文将深入探讨GNSS技术在灾害监测与应急响应中的作用&#xff0c;并分析其对提高应对灾害能力的重要性。 一、GNSS在灾害…

InnoDB 的一次更新事务是怎么实现的?

大体流程&#xff1a; 步骤: 1.加载数据到缓存中&#xff08;Buffer Pool&#xff09;&#xff1a; 在进行数据更新时&#xff0c;InnoDB首先会在缓冲池&#xff08;Buffer Pool&#xff09;中查找该记录是否已经在内存中。如果记录不在内存中&#xff0c;会将需要更新的数据…

2021年03月 Scratch(二级)真题解析#中国电子学会#全国青少年软件编程等级考试

Scratch等级考试(1~4级)全部真题・点这里 一、单选题(共25题,每题2分,共50分) 第1题 小猫在沙漠中旅行好不容易找到了一杯水,初始位置如下图所示,下面哪个程序可以帮助它成功喝到水? A: B: C: D:

基于像素特征的kmeas聚类的图像分割方案

kmeans聚类代码 将像素进行聚类&#xff0c;得到每个像素的聚类标签&#xff0c;默认聚类簇数为3 def seg_kmeans(img,clusters3):img_flatimg.reshape((-1,3))# print(img_flat.shape)img_flatnp.float32(img_flat)criteria(cv.TERM_CRITERIA_MAX_ITERcv.TERM_CRITERIA_EPS,2…

stack和queue简单实现(容器适配器)

容器适配器 stack介绍stack模拟实现queue 介绍queue模拟实现deque stack介绍 stack模拟实现 以前我们实现stack&#xff0c;需要像list,vector一样手动创建成员函数&#xff0c;成员变量。但是stack作为容器适配器&#xff0c;我们有更简单的方法来实现它。 可以利用模板的强大…

练习六-使用Questasim来用verilog使用function函数

[TOC](使用Questasim来用verilog使用function函数 1&#xff0c;verilog中使用函数function2&#xff0c;RTL代码3&#xff0c;测试代码4&#xff0c;输出波形 1&#xff0c;verilog中使用函数function 目的&#xff1a; &#xff08;1&#xff09;了解函数的定义和在模块设计中…

【面试】测试/测开(未完成版)

1. 黑盒测试方法 黑盒测试&#xff1a;关注的是软件功能的实现&#xff0c;关注功能实现是否满足需求&#xff0c;测试对象是基于需求规格说明书。 1&#xff09;等价类&#xff1a;有效等价类、无效等价类 2&#xff09;边界值 3&#xff09;因果图&#xff1a;不同的原因对应…

日常办公:批处理编写Word邮件合并获取图片全路径

大家在使用Word邮件合并这个功能&#xff0c;比如制作席卡、贺卡、准考证、员工档案、成绩单、邀请函、名片等等&#xff0c;那就需要对图片路径进行转换处理&#xff0c;此脚本就是直接将图片的路径提取出来&#xff0c;并把内容放到txt格式的文本文档里&#xff0c;打开Excel…

九韵和声 饕餮盛宴丨音乐和声与校友情谊的完美交融

“九韻和聲”音樂會於11月19日晚上在深圳大劇院盛大舉行。來自各高校深圳校友會的逾千名同學們歡聚一堂&#xff0c;共同慶祝自己的合唱音樂會。 首次舉辦合唱音樂會 “九韵和声”音乐会由深圳市西安交通大学校友会牵头发起、主办&#xff0c;与深圳市清华大学校友会、深圳市浙…

微信小程序知识付费平台,公众号App+SAAS+讲师端,多端部署

三勾知识付费系统基于thinkphp8element-plusuniapp打造的面向开发的知识付费系统&#xff0c;方便二次开发或直接使用&#xff0c;可发布到多端&#xff0c;包括微信小程序、微信公众号、QQ小程序、支付宝小程序、字节跳动小程序、百度小程序、android端、ios端。 功能包含直播…

欧拉操作系统下离线安装字体的操作步骤

背景 某 Web 应用部署到欧拉操作系统后&#xff0c;应用中导出的 PDF 文件中文全部显示乱码&#xff0c;原因是字体缺失&#xff0c;但是目标系统上并没有联网&#xff0c;必须找到字体的离线安装包。 CSDN 上还有40个积分&#xff0c;下载了两个相关的资源后&#xff0c;目标…

OpenAI 董事会宫斗始作俑者?一窥伊尔亚·苏茨克维内心世界

OpenAI 董事会闹剧应该是暂告一个段落了,Sam Altman和Greg Brockman等一众高管均已加入微软,还有员工写联名信逼宫董事会的戏码,关注度已经降下来了。 但是,这场宫斗闹剧的中心人物Ilya Sutskever大家关注度不算太高。他本人是纯粹的技术男,极少抛头露面透露其内心世界。…

FISCO BCOS 3.0【01】搭建第一个区块链网络

官方技术文档:https://fisco-bcos-doc.readthedocs.io/zh-cn/latest/index.html 我们在官方技术文档的基础上,进行,对文档中一些不清楚的地方进行修正 搭建Air版本FISCO BCOS联盟链本节以搭建单群组FISCO BCOS链为例操作,使用开发部署工具build_chain.sh脚本在本地搭建一条…

Java中的抽象类和接口

目录 1. 抽象类 1.1 抽象类概念 1.2 抽象类语法 1.3 抽象类需要注意的点 1.4 抽象类的作用 2. 接口 2.1 接口的概念 2.2 语法规则 2.3 接口使用 2.4 接口特性 2.5 实现多个接口 2.6 接口间的继承 2.7 接口使用实例 2.8 Clonable接口,浅拷贝和深拷贝 2.9 抽…

算法分析与设计课后练习23

求下面的0-1背包问题 &#xff08;1&#xff09;N5,M12,(p1,p2,…,p5)(10,15,6,8,4),(w1,w2,…,w5)(4,6,3,4,2) &#xff08;2&#xff09;N5,M15,(p1,p2,…,p5)(w1,w2,…,w5)(4,4,5,8,9)

Keka v1.3.5(mac压缩解压工具)

Keka是一款功能强大的文件压缩和解压缩软件&#xff0c;为Mac系统用户提供便捷、高效的文件管理工具。以下是Keka的主要特点和功能&#xff1a; 多种压缩格式支持&#xff1a;Keka支持多种常见的压缩格式&#xff0c;包括ZIP、7Z、RAR、TAR、GZIP等。它能够方便地创建和提取这些…

react antd下拉选择框选项内容换行

下拉框选项字太多&#xff0c;默认样式是超出就省略号&#xff0c;需求要换行全展示&#xff0c;选完在选择框里还是要省略的 .less: .aaaDropdown {:global {.ant-select-dropdown-menu-item {white-space: pre-line !important;word-break: break-all !important;}} } html…

mongodb——原理简介,docker单机部署

MongoDB noSQL数据库 特点 数据文件存储格式为 BSON &#xff08;JSON 的扩展&#xff09; &#xff5b;“name”&#xff1a;“joe”&#xff5d;这是 BSON 的例子&#xff0c;其中"name"是键&#xff0c;"joe"是值。键值对组成了 BSON 格式。面向集合…

ROS2中Executors对比和优化

目录 SingleThreadExecutorEventExecutor SingleThreadExecutor 执行流程 EventExecutor 通信图

Linux学习第43天:Linux 多点电容触摸屏实验:难忘记第一次牵你手的温存

Linux版本号4.1.15 芯片I.MX6ULL 大叔学Linux 品人间百味 思文短情长 人都是性情中人&#xff0c;如果把学习当做自己的女朋友&#xff0c;对她细致入微、掏心掏肺、有耐心有恒心&#xff0c;终会修成正果。 而我们本节需要学习的电…