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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【用unity实现100个游戏之16】Unity程序化生成随机2D地牢游戏2(附项目源码)

文章目录 先看看最终效果前言生成走廊生成房间修复死胡同增加走廊宽度获取走廊位置信息集合方法一方法二 源码完结 先看看最终效果 前言 上期已经实现了房间的生成&#xff0c;本期紧跟着上期内容&#xff0c;生成走廊并结合上期内容生成连通的房间。 生成走廊 修改Procedur…

WPF Button点击鼠标左键弹出菜单

目录 ContextMenu介绍WPF实现点击鼠标左键弹出菜单如何禁用右键菜单如何修改菜单样式菜单位置设置 本篇博客介绍WPF点击按钮弹出菜单&#xff0c;效果如下&#xff1a; 菜单的位置、央视可以自定义。 实现技巧&#xff1a;不在xaml里菜单&#xff0c;在按钮左键按下的点击事件里…

Linux系统编程 系统编程概念

1.系统调用 系统调用&#xff08;system call&#xff09;其实是 Linux 内核提供给应用层的应用编程接口&#xff08;API&#xff09;&#xff0c;是 Linux 应用层进入内核的入口。不止 Linux 系统&#xff0c;所有的操作系统都会向应用层提供系统调用&#xff0c;应用程序通过…

每日汇评:美日在两个月低点附近似乎较为脆弱,熊市可能会在FOMC会议纪要公布前暂停

美元/日元跌至两个月低点&#xff0c;并受到多种因素的压力&#xff1b; 美联储鸽派预期和美国债券收益率下降继续令美元承压&#xff1b; 美日利差缩小以及日本央行政策转变的押注提振了日元&#xff1b; 美元/日元货币对在周二持续第四天承受着沉重的卖压&#xff0c;同时也标…

jenkins-2.426.1-1.1.noarch.rpm 的公钥没有安装

执行命令 yum install jenkins 报错 jenkins-2.426.1-1.1.noarch.rpm 的公钥没有安装 下载的软件包保存在缓存中&#xff0c;直到下次成功执行事务。 您可以通过执行 yum clean packages 删除软件包缓存。 错误&#xff1a;GPG 检查失败 解决办法&#xff1a; 1、安装新的公…

Linux上通过SSL/TLS和start tls连接到LDAP服务器(附C++代码实现认证流程)

一&#xff0c;大致流程。 1.首先在Linux上搭建一个LDAP服务器 2.在LDAP服务器上安装CA证书&#xff0c;服务器证书&#xff0c;因为SSL/TLS&#xff0c;start tls都属于机密通信&#xff0c;需要客户端和服务器都存在一个相同的证书认证双方的身份。3.安装phpldapadmin工具&am…

集群创建(flannel)时候,没有自动创建出cni0网卡

给旧的集群加入四台新的服务器启动时候发现都是正常的&#xff0c;但是pod通信报错 集群通信失败&#xff0c;第一时刻想看看是不是cni0和flannel.1的网段是不是通的&#xff0c;点进去一看发现cni0网卡没有生成。 部署是通过kubeadm方式部署的集群&#xff0c;目前有两种解决…

数据库表的内连接和外连接

1.内连接查询语法 -- 隐式内链接 SELECT 字段列表 FROM 表1&#xff0c;表2WHERE 条件&#xff1b; -- 显示内连接 select 字段列表 from 表1 [inner] join 表2 on 条件&#xff1b; 如果两个表没用进行内连接&#xff0c;会生成笛卡尔积。A集合和B集合全部元素进行排列组合。 …

Oracle数据库安装踩坑记录

Oracle数据库安装踩坑记录 踩坑目录 可能会用到的教程1. 管理员用户&#xff08;sys&#xff09;登录oracle命令2. 默认密码&#xff1a;三个 如果忘记改密码参考 1. 登录后修改密码3. 查看账号密码&#xff1a;只有sys用户登录后才能查看4. sqldeveloper 连接oracle数据库5. o…

logic-flow 使用过程中遇到的bug - 拖动节点到画布的时候,鼠标松开,节点不落在画布,仍旧跟着鼠标走

背景&#xff1a; 插件&#xff1a;logicFlow 用途&#xff1a;画流程图 bug表现&#xff1a; 初始化的样子&#xff1a; bug的样子&#xff1a; 拖动第一个节点的时候&#xff0c;一切正常&#xff08;无论哪个节点作为第一个节点&#xff0c;都是正常的&#xff0c;但是拖动…

渗透实例------2个星期艰难的渗透纪实

2个星期艰难的渗透纪实 kyo327 入侵原因,需删一帖子,目标用www.111.com代替,前期通过初期的网站文件暴力猜解,扫描到robots.txt这个文件,有以下目录。如图1: 图1 再通过对这些文件的访问,从3gadm.php文件的标题栏得到该网站采用的是diy-page8.3的cms,自然可以先用搜索…

SpringBoot-Docker容器化部署发布

在生产环境都是怎么部署 Spring Boot? 打成 jar 直接一键运行打成 war 扔到 Tomcat 容器中运行容器化部署 一、准备Docker 在 CentOS7 上安装好 Docker 修改 Docker 配置&#xff0c;开启允许远程访问 Docker 的功能&#xff0c;开启方式很简单&#xff0c;修改 /usr/lib/s…

使你的软文更具说服力的技巧,媒介盒子分享

软文想要写好除了日常素材积累和思维的训练外&#xff0c;还需要充分的前期策划&#xff0c;这样才能使软文的写作效果更好&#xff0c;今天媒介盒子就来和大家分享&#xff0c;使你的软文更具说服力和吸引力的技巧&#xff01; 一、 受众分析 了解受众的基本属性这样能使写作…

每日一练:X加上100为完全平方数,再加上168任然为完全平方数

题目 一个整数&#xff0c;它加上100后是一个完全平方数&#xff0c;再加上168又是一个完全平方数&#xff0c;请问该数是多少&#xff1f; 实现方式1 解题思路 设整数为x&#xff0c;根据题意建立方程&#xff1a;   (1) x 100 是一个完全平方数&#xff0c;即存在整数a满…

京东商品详情数据接口【京东API接口开发系列】,监控京东价格走势,接口代码示例,可高并发批量获取

京东开放平台提供了API接口来访问京东商品详情。通过这个接口&#xff0c;您可以获取到商品的详细信息&#xff0c;如商品名称、价格、库存量、描述等。 以下是使用京东商品详情API接口的一般步骤&#xff1a; 注册并获取API权限&#xff1a;您需要在京东开放平台上注册并获取…

QT程序打包

1.须知 自用&#xff0c;不能保完全适合你的需求 只适用简单的QT工程 1.标准qmake工程&#xff0c;一些cmake工程不能保证适用 2.不涉及太多第三方库&#xff0c;linuxdeployqt不能递归拷贝库文件&#xff0c;如果打包完运行显示缺少库&#xff0c;可以手动把缺少的库拷进来…

QT修改windowTitle的名字以及图片

1.修改名字:点击ui的QMainWindow,然后找到windowTitle的选项修改即可 2.修改windowTitle的图片,依旧是找到windowIcon,选择资源,这个资源可以是你放到qrc里面的图片也可以是外置的图片 3.然后运行就可以看到效果了

01-了解微服务架构的演变过程和微服务技术栈

微服务 微服务架构演变 单体架构:将业务的所有功能集中在一个项目中开发最后打成一个包部署 优点: 架构简单, 部署成本低,适合小型项目缺点: 耦合度高, 升级维护困难 分布式架构:根据业务功能对系统做拆分,每个业务功能模块作为独立项目开发称为一个服务 优点: 降低服务耦合…

MySQL数据库入门到大牛_基础_10_创建和管理表(创建和管理数据库;创建表;修改表;重命名表;删除表;清空表,内容扩展)

前面我们完成了查询结构的介绍&#xff0c;本章介绍DDL和DCL中的COMMIT和ROLL BACK。 文章目录 1. 基础知识1.1 一条数据存储的过程1.2 标识符命名规则1.3 MySQL中的数据类型 2. 创建和管理数据库2.1 创建数据库2.2 使用数据库2.3 修改数据库2.4 删除数据库 3. 创建表3.1 创建…

基于Docker的安装和配置Canal

基本介绍 Canal介绍&#xff1a;Canal 是用 Java 开发的基于数据库增量日志解析&#xff0c;提供增量数据订阅&消费的中间件&#xff08;数据库同步需要阿里的 Otter 中间件&#xff0c;基于 Canal&#xff09;。 Canal背景&#xff1a;阿里巴巴 B2B 公司&#xff0c;因为…