Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >什么是移动端开发【重点学习系列—干货十足–一万字详解】

什么是移动端开发【重点学习系列—干货十足–一万字详解】

作者头像
全栈程序员站长
发布于 2022-09-12 02:07:46
发布于 2022-09-12 02:07:46
2.6K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

引言

这一篇文章主要对移动端开发相关的基础知识点,进行总结。从移动端开发的一些概念、专有名词、缩放、viewport移动端事件、适配问题以及一些工作中沟通经常会用到这些方面来说一下移动端

文章目录

1-移动端开发相关概念

移动端特点

移动端与 PC 端网页有所不同,有以下几个特点

屏幕大小

​屏幕大小指屏幕的对角线的长度,单位一般是英寸。常见的手机屏幕大小 3.5、4、4.7、5.0、5.5、6.0等。常见手机屏幕查看网址 http://screensiz.es/

注意:

  • 英寸的英文为 inch , 英尺的英文是 foot
  • 1foot = 12inch 1inch=2.54cm

屏幕分辨率

屏幕分辨率是指屏幕横纵向上的像素点数。一般表示形式 x * y 或者 y * x 表示。例如 IPhone 6 的屏幕分辨率为 750 * 1334,华为 P30 的分辨率为 2340 * 1080。

注意

  • 屏幕分辨率是一个固定值,生产出来就固定了,无论手机屏幕还是电脑屏幕。
  • 屏幕分辨率与显示分辨率不同。计算机可以修改显示分辨率,信号传递给屏幕,屏幕会进行计算,在屏幕上显示。
  • 1080P 的分辨率是1920×1080
  • 2K 屏幕是单一方向分辨率具有约 2000 像素的显示设备。最标准的 2K 分辨率为 2048×1024

几款手机的分辨率

型号

分辨率

IPhone 3GS

320 * 480

IPhone 4 / 4s

640 * 960

IPhone 5 / 5s

640 * 1136

IPhone 6 / 7 / 8

750 * 1334

华为 P30

1080 * 2340

IPhone X

1125 * 2436

像素相关

物理像素 / 设备像素

  • 设备像素 / 物理像素是一个长度单位。 1 物理像素对应显示设备中一个微小的物理部件。
  • 设备像素是手机屏幕的一个参数,由手机制造商决定。

设备独立像素 / 设备无关像素

  • 设备独立像素,简称 DIP(device-independent pixel),又称为设备无关像素,是一个长度计量单位。
  • 设备独立像素也是手机屏幕的一个参数,由手机制造商决定。
  • 1 个设备独立像素可以认为是计算机坐标系统中的一个点,代表可以通过程序控制使用的虚拟像素。
    • 普通屏幕下 1 设备独立像素 等于 1 物理像素
    • 高清屏幕下 1 设备独立像素 等于 N 物理像素
Retina 屏幕

Retina 是苹果公司 2010 年推出的一种显示标准,是把更多的像素点压缩至一块屏幕里,从而达到更高的分辨率并提高屏幕显示的细腻程度。

设备独立像素的出现,使得即使在高分辨率的屏幕下,也可以正常尺寸的显示元素,代码不受到设备的影响。

几款手机的屏幕像素参数,点击这里查看更多

型号

设备像素总和

设备独立像素总和

IPhone 3GS

320 * 480

320 * 480

IPhone 4 / 4s

640 * 960

320 * 480

IPhone 5 / 5s

640 * 1136

320 * 568

IPhone 6 / 7 / 8

750 * 1334

375 * 667

HUAWEI P10

1080 x 1920

360 x 640

IPhone X

1125 * 2436

375 * 812

CSS 像素 / 逻辑像素

CSS 像素是一个抽象的长度单位,单位 px,主要用来精确度量和控制 WEB 网页上的内容。

  • CSS 像素不能直接跟现实中的长度单位换算
  • CSS 像素主要用在 CSS 与 JS 中控制元素的大小

位图像素

位图像素也是一个长度单位。位图像素是栅格图像(如:png,jpg,gif等)最小的数据单元。

位图和矢量图
  • 位图图像是由称作像素(图片元素)的单个点组成的。放大后会失真。
  • 矢量图,也称为面向对象的图像或绘图图像,在数学上定义为一系列由线连接的点。放大后不会失真。软件有Adobe Illustrator,Sketch

1个位图像素对应于1个物理像素,图片才能得到完美清晰的展示

像素之间的关系
  • CSS 像素 == 独立设备像素 == 逻辑像素 == DIP == 位图像素
  • 在一个标准的显示密度下(普通屏),一个 CSS 像素对应着一个设备像素,高清屏幕下一个 CSS 像素 等于 N 个物理像素
像素密度

屏幕上每英寸可以显示的像素点的数量,单位是 ppi (pixels per inch ),这里还有另一个单位 dpi(dots per inch),两个值的计算方式都一样,只是使用的场景不同。 描述屏幕属性时使用 ppi,开发过程中描述屏幕设备使用 dpi。

苹果曾经给出个一个标准:手机屏幕达到 300PPI、平板屏幕达到 220PPI、笔记本电脑屏幕达到 200PPI 即可认为是 Retina 屏幕。

像素比 / N倍屏

像素比(DPR dpr): 单一方向上设备物理像素和设备独立像素的比例。

像素比的作用 程序可以根据像素比来显示不同的图片,达到清晰显示网页的效果。

注意: 并不是所有的图片都这样处理,只需要处理那些页面布局需要的图片和图标即可

视口

PC 端

在 PC 端,视口指的是浏览器的可视区域。其宽度和浏览器窗口的宽度保持一致。在 CSS 标准文档中,视口也被称为初始包含块,它是所有 CSS 百分比宽度推算的根源。

移动端

移动端的视口与 PC 端不同,有三个视口

  • 布局视口
  • 视觉视口
  • 理想视口
布局视口

布局视口是用来放置网页内容的区域。

一般移动设备的浏览器都默认定义一个虚拟的布局视口(layout viewport),用于解决早期的页面在手机上显示的问题。 视口大小由浏览器厂商决定,大多数设备的布局视口大小为 980px。

视觉视口

视觉视口就是用户可见的区域。

获取方式

注:不缩放的情况下,视觉视口宽度 == 布局视口宽度。

理想视口

宽度与屏幕同宽的布局视口称为理想视口。 理想视口的好处

注意:理想视口不是真实存在的视口

设置理想视口的方法

2-缩放

PC 端

放大时

  • 布局视口变小
  • 视觉视口变小
  • 元素的像素大小不变

缩小时

  • 布局视口变大
  • 视觉视口变大
  • 元素的像素大小不变

移动端

放大时

  • 布局视口不变
  • 视觉视口变小

缩小时

  • 布局视口不变
  • 视觉视口变大 注意:移动端缩放不会影响页面布局

真机测试流程(重点)

真机测试是项目测试必要的一个流程,一定要掌握!!!

  • 防火墙
  1. webstorm -> ctrl + alt + s -> 搜索 debugger -> 修改端口并勾选两个多选框
  2. 使 PC 与手机处于同一个网络。手机连接电脑 wifi,或者电脑连接手机热点,两者在同一个 wifi 下最方便。
  3. cmd 查看电脑无线网卡的 IP(ipconfig)
  4. webstorm 在浏览器中预览文件,将 localhost 更改为 IP
  5. 打开草料网址 https://cli.im/ 将 URL 转化为二维码,手机扫描即可 😎

3-viewport 控制

viewport 标签是苹果公司在 2007 年引进的,用于移动端布局视口的控制。

使用示例

viewport 相关选项

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
- width  布局视口宽度
- initial-scale  初始化缩放比例
-  minimum-scale  最小缩放比例
	- 这里通过微信来浏览器演示  苹果内置的和很多安卓的浏览器不可用  itools 实时屏幕
- maximum-scale 最大缩放比例
- user-scalable  设置是否允许用户缩放
	-  苹果内置的浏览器不好使, 但是微信浏览器好使
- viewport-fit   auto/contain/cover

width

width 值可以是数字,也可以是设备宽度表示 device-width,这样可以得到完美视口

initial-scale

  • initial-scale 为页面初始化时的显示比例。
  • scale = 屏幕宽度独立像素 / 布局视口宽度。
  • 注意:
    • chrome 测试该参数会有偏差,真机测试
    • initial-scale = 1.0 也可以得到完美视口
    • initial-scale 会影响布局视口和视觉视口的大小
    • width 与 initial-scale 同时设置时,会选择尺寸较大的那个

minimum-scale

  • 设置允许用户最小缩放比例。
  • minimum-scale = 屏幕独立像素宽度 / 视觉视口

maximum-scale

  • 设置允许用户最大缩放比例,苹果浏览器 safari 不认识该属性
  • maximum-scale = 屏幕独立像素宽度 / 视觉视口

user-scalable

是否允许用户通过手指缩放页面。苹果浏览器 safari 不认识该属性。

viewport-fit

设置为 cover 可以解决『刘海屏』的留白问题

4-移动端事件

事件类型

移动端事件列表

  • touchstart 元素上触摸开始时触发
  • touchmove 元素上触摸移动时触发
  • touchend 手指从元素上离开时触发
  • touchcancel 触摸被打断时触发

这几个事件最早出现于IOS safari中,为了向开发人员转达一些特殊的信息。

应用场景

  • touchstart 事件可用于元素触摸的交互,比如页面跳转,标签页切换
  • touchmove 事件可用于页面的滑动特效,网页游戏,画板
  • touchend 事件主要跟 touchmove 事件结合使用
  • touchcancel 使用率不高
  • 注意:
    • touchmove 事件触发后,即使手指离开了元素,touchmove 事件也会持续触发
    • 触发 touchmove 与 touchend 事件,一定要先触发 touchstart
    • 事件的作用在于实现移动端的界面交互

事件绑定

方式一

方式二

点击穿透

  • touch 事件结束后会默认触发元素的 click 事件,如没有设置完美视口,则事件触发的时间间隔为 350ms 左右,如设置完美视口则时间间隔为 5ms 左右。
  • 如果 touch 事件隐藏了元素,则 click 动作将作用到新的元素上,触发新元素的 click 事件或页面跳转,此现象称为点击穿透

解决方法

阻止当前元素事件的默认行为。

阻止顶级元素事件的默认行为,可以增加一个包裹元素绑定,也可以给 document 和 window 绑定,不过需要关闭被动模式

使用非链接的元素代替 a 标签,并绑定 touchstart 事件

延时隐藏遮盖元素

页面跳转的选择

移动端页面跳转可以使用 a 链接,也可以使用 touchstart 事件来触发 JS 代码完成跳转

  • 效率上,touchstart 速度更快
  • SEO 优化上, a 链接效果更好

浏览器默认行为

这里指的浏览器默认行为主要有两个

  • 滑动露白
  • 页面缩放

为什么要阻止这些默认行为

这样可以让网页在不同的浏览器都有一样的表现。

如何阻止默认行为

可以给 document 绑定 touchstart 事件,并阻止默认行为,不过需要关闭被动模式。这里推荐创建一个包裹元素,绑定 touchstart 事件并阻止默认行为。

CSS 代码

HTML 代码

JS 代码

后遗症

最外层元素阻止了 touchstart 默认行为之后,会产生一些意外现象😭

  • 链接失效
  • 内容无法选择
  • form 元素无法获得焦点

灵丹妙药

产生『后遗症』的原因在于 touchstart 阻止了默认行为,后续所有的操作都已经失效。解决问题只需要给目标元素绑定 touchstart 事件并阻止事件冒泡,这样当前操作的默认行为仍然可用。👌

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var link = document.getElementsByTagName('a')[0];
link.addEventListener('touchstart', function(e){ 
   
	e.stopPropagation();
})

注: 不是非要阻止浏览器的默认行为,这是一种极端要求的应对方法,正常只需要设置完美视口即可。

事件对象属性

touch 事件对象中有 3 个非常重要的属性

  • changedTouches
  • targetTouches
  • touches

touchstart 事件

在 touchstart 事件中

  • changedTouches 为当前在元素上同时滑动的触点对象数组。
  • targetTouches 为滑动时,当前元素上的触点对象数组
  • touches 为滑动时,当前屏幕上所有的触点对象数组

touchmove 事件

在 touchend 事件中

  • changedTouches 为当前在元素上同时抬起的触点对象数组。
  • targetTouches 为结束时时,当前元素上的触点对象数组
  • touches 为结束时时,当前屏幕上所有的触点对象数组 触摸结束的位置,必须要使用 touchend 事件中的 changedTouches 来获取

触点对象

每一个触点对象都包含一些位置信息,其中包括

  • clientX 相对可视区域左侧的偏移
  • clientY 相对可视区域顶侧的偏移
  • pageX 相对文档左侧的偏移
  • pageY 相对文档顶部的偏移

5-小案例(未完待续—后续补上)

  • 触摸拖拽
  • 竖向滑屏
  • 画板

6-适配

移动端设备的屏幕尺寸繁多,要想让页面的呈现统一,需要对不同尺寸的设备进行适配。适配的方式主要有两种

  • viewport 适配
  • rem 适配

viewport 适配

拿到设计稿之后,设置布局视口宽度为设计稿宽度,然后量尺寸进行布局即可。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<meta name="viewport" content="width=375, user-scalable=no">

操作步骤:

  1. 上传 PSD 到蓝湖
  2. 设置 viewport 标签 width=375 (以设计稿为准)
  3. 根据设计稿测量尺寸,编写 CSS

rem适配

em 和 rem

em 和 rem 都是 CSS 中的长度单位。而且两个都是相对长度单位,不过两个有点区别

  • em 相对的是父级元素的字体大小
  • rem 相对的是根元素的字体大小

核心是等比缩放

rem 适配的策略有以下几种

  • 方法一 先按照 IPhone 6 进行页面布局,再进行适配
    1. 完美视口设置
    2. 设计稿总宽 375 布局
    3. 设置 font-size 100px 尺寸转为 rem
    4. 增加 JS 代码进行页面适配
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
document.documentElement.style.fontSize = document.documentElement.clientWidth*100/375+'px';
  • 方法二 编写时按照 IPhone 6 直接使用 rem 单位进行布局
    1. 完美视口设置
    2. 设计稿总宽 375 布局
    3. 以 font-size 100px 进行尺寸换算,设置 rem
    4. 增加 JS 代码进行页面适配
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
document.documentElement.style.fontSize = document.documentElement.clientWidth*100/375+'px';
  • 方法三 选择一个设计稿宽度的比例尺寸作为根元素的字体大小
    1. 完美视口设置
    2. 通过 JS 设置页面的根元素字体大小。可以除以 10 也可以除以其他的数字
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
document.documentElement.style.fontSize = document.documentElement.clientWidth/10+'px';

1px 边框问题

高清屏幕下 1px 对应更多的物理像素,所以 1 像素边框看起来比较粗,解决方法如下

方法一

边框使用伪类选择器,或者单独的元素实现。例如底部边框

在高清屏幕下设置

方法二

rem 页面布局

元素的边框设置为 1px

通过 viewport 中的 initial-scale 将页面整体缩小

重新设置根元素字体

7-附录

chrome 插件安装

  1. 下载 crx 插件文件,如 caoliao.crx
  2. 更名为 .rar 后缀, 例 caoliao.rar
  3. 解压文件,得到 caoliao 文件夹
  4. chrome 浏览器 -> 右上角 ┆ -> 更多工具 -> 扩展程序 -> 右上角开启开发者模式 -> 左侧已解压的扩展程序 -> 选择 caoliao 文件夹 👌

webstorm 配置 less 解析

  1. 下载安装 nodejs 。下载地址 http://nodejs.cn/download/
  2. 命令行下安装 lessc
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
npm install less -g
  1. webstorm 配置文件监控
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ctrl + alt + s 打开设置  ->  搜索 watcher -> 点击右上角 +-> 选择 less -> 确定👌
  1. 创建 less 文件,就会自动生成 css 文件

8-总结

  • 相信不用多说了,一万多字的详解移动端开发,希望每一个知识点可以帮助到你
  • 愿你在这个代码繁杂、头发渐秃的编码世界里,可以温暖疲倦的自己,坚持学习

有时候你不努力一下,就不知道什么叫绝望。

『传送门』☛ 什么是混合移动App开发【重点学习系列—干货十足–一文详解】

『传送门』☛ 什么是微信小程序【重点学习系列—干货十足–一文详解】

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/152692.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
关于移动端适配,你必须要知道的
上面这些问题可能我们在开发中已经知道如何解决,但是问题产生的原理,以及解决方案的原理可能会模糊不清。在解决这些问题的过程中,我们往往会遇到非常多的概念:像素、分辨率、 PPI、 DPI、 DP、 DIP、 DPR、视口等等,你真的能分清这些概念的意义吗?
ConardLi
2019/05/23
2K0
H5移动端开发学习总结
对于移动端开发而言,为了做到页面高清的效果,视觉稿的规范往往会遵循以下两点: 1.首先,选取一款手机的屏幕宽高作为基准(现在一般选取iphone6的375×667)。之前项目中也用到过iphone5的320×568。 2.对于retina屏幕(如: dpr=2),为了达到高清效果,视觉稿的画布大小会是基准的2倍,也就是说像素点个数是原来的4倍(对iphone6而言:原先的375×667,就会变成750×1334)。
全栈程序员站长
2022/08/31
1K0
H5移动端开发学习总结
–我对移动端适配的了解
[总结]我对移动端适配的了解 不知不觉做前端已经两年了,从PC端,移动端,微信小程序一路走来到今天刚刚开放注册的快应用(手机厂商对抗小程序的新技能,所以在注册时用的是qq邮箱的话要去垃圾箱里才能找到注册邮件),对于前端圈日新月异的磅礴发展对于大前端发展是喜闻乐见的,这次的快应用的手机厂商们为其开放了应用入口和系统推广引流入口。这些新能力为前端开发者们带来更强的作战能力。 我们在开发PC站时经常在浏览器兼容问题上耗费巨大的时间,到了移动端,面对webkit内核的Safari与Chrome会舒心很多。b
大象无痕
2018/06/27
2.1K2
探讨移动端适配
用截图工具(截图工具测得的像素等于物理像素)测得CSS中的1px 的等于物理像素1px的 那么他们的比值就是1:1
切图仔
2022/09/08
1.4K0
探讨移动端适配
移动 web 开发最佳实践
刘春鹏
2017/06/14
3.1K0
移动 web 开发最佳实践
07-移动端开发教程-移动端视口
老马初始学习视口的概念的时候,看了很多的文章,看来很多的资料,鲜有人能把这个东西讲的非常透彻的。老马接下来就从初学者能看懂的角度去讲解视口和适配的方案。
老马
2018/02/18
1.5K0
07-移动端开发教程-移动端视口
移动端H5开发基础[通俗易懂]
随着移动端H5需求场景越来越多,例如微信公众号中H5页面的开发,APP中内嵌H5页面等,移动端H5开发基础知识和技巧是前端开发工程师必备的技能~
全栈程序员站长
2022/08/31
1.7K0
移动端H5开发基础[通俗易懂]
移动端适配必须掌握的基本概念和适配方案
随着技术的发展,移动设备越来越流行,并且不同设备间屏幕尺寸和屏幕像素的差异,移动端开发面临着多分辨率适配的问题。
用户6167509
2020/07/23
1K0
移动端布局笔记
设备像素比表示1个CSS像素(宽度)等于几个物理像素(宽度):DPR = 物理像素数 / 逻辑像素数
4O4
2022/04/25
6790
移动端布局笔记
移动端自适应的常见手段
完整高频题库仓库地址:https://github.com/hzfe/awesome-interview
HZFEStudio
2021/10/01
1.9K0
前端工程师之 移动端布局基础
虽然 H5 的页面与 PC 的 Web 页面相比简单了不少,但让我们头痛的事情是要想尽办法让页面能适配众多不同的终端设备。下图是我们需要适配的移动端屏幕设备尺寸,看到这些数据,是不是有一种键盘敲烂的感觉。
用户9184480
2024/12/13
820
java移动端开发_移动端开发
现在市面上的大部分手机,比如iphone X,它的默认视口宽度为980px,而一个iphone X的屏幕宽度仅仅为375px。看到问题了吗?一个宽度只有375像素的手机,却能够显示宽度为980像素的网页,自然而然,网页会被缩小。
全栈程序员站长
2022/09/12
5K0
java移动端开发_移动端开发
前端基础知识概述 -- 移动端开发的屏幕、图像、字体与布局的兼容适配
前端的一大工作内容就是去兼容页面在不同内核的浏览器,不同的设备,不同的分辨率下的行为,使页面的能正常工作在各种各样的宿主环境当中。
Sb_Coco
2019/09/06
3.1K0
10-移动端开发教程-移动端事件
在前端的移动Web开发中,有一部分事件只在移动端产生,如触摸相关的事件。接下来给大家简单总结一下移动端的事件。
老马
2018/02/18
6.8K0
10-移动端开发教程-移动端事件
移动端开发初识
对于pc端的前端开发以及html5和css3学习过后对页面布局更加熟练了,对于现在开发更多倾向于移动端开发,对于移动端开发和传统PC开发又有所不同,下面简单认识下移动端开发概况!
十月梦想
2018/08/29
1K0
【适配】425- 彻底搞懂移动Web开发中的viewport与跨屏适配
viewport是移动端跨屏适配的基石,吃透这一概念,任何复杂多变的适配需求,都可以手到擒来。
pingan8787
2019/11/29
3.1K0
前端学习笔记—移动端web开发
响应式网站:即pc和移动端共用一套网站,只不过在不同宽度的屏幕下,样式会自动适配。配合媒体查询监听,通过判断屏幕宽度来改变样式,以适应不同终端。例如:三星电子官网: www.samsung.com/cn/ 缺点:制作麻烦,需要花很大精力去调兼容性问题
木溪bo
2024/03/23
2290
前端学习笔记—移动端web开发
第119天:移动端:CSS像素、屏幕像素和视口的关系
移动前端中常说的 viewport (视口)就是浏览器显示页面内容的屏幕区域。其中涉及几个重要概念是 dip ( device-independent pixel 设备逻辑像素 )和 CSS 像素之间的关系。这里首先了解以下几个概念。
半指温柔乐
2018/09/11
1.7K0
第119天:移动端:CSS像素、屏幕像素和视口的关系
移动端H5开发之页面适配篇
最近开发并上线了一款H5项目,在这里想和大家分享一下关于项目中使用到的移动端适配技巧,如果对你们有所帮助的话,就多多点赞收藏😃各位看官老爷别着急,在讲页面适配之前,我们先来捋一捋viewport(视口)的概念~在Web浏览器术语中,通常与浏览器窗口相同,但不包括浏览器的UI, 菜单栏等——即指你正在浏览的文档的那一部分。一般我们所说的视口共包括三种:布局视口、视觉视口和理想视口1.1 布局视口图片在移动端,布局视口被赋予一个默认值,大部分为980px,这保证PC的网页可以在手机浏览器上呈现,用户可以手动对网
三点水的洋
2022/06/10
7.6K1
移动端H5开发之页面适配篇
CSS&HTML面经专题——(四)移动端响应式布局
在移动端viewport视口(pc端没有这个概念)就是浏览器显示页面内容的屏幕区域。
玖柒的小窝
2021/10/26
2.5K0
相关推荐
关于移动端适配,你必须要知道的
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验