<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>CSS3 on Yison's Blog</title><link>https://blog.7ys.top/tags/css3/</link><description>Recent content in CSS3 on Yison's Blog</description><generator>Hugo -- gohugo.io</generator><language>zh-CN</language><lastBuildDate>Fri, 02 Feb 2018 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.7ys.top/tags/css3/index.xml" rel="self" type="application/rss+xml"/><item><title>指尖之上 - 移动端H5开发资源汇总</title><link>https://blog.7ys.top/posts/%E6%8C%87%E5%B0%96%E4%B9%8B%E4%B8%8A-%E7%A7%BB%E5%8A%A8%E7%AB%AFh5%E5%BC%80%E5%8F%91%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB/</link><pubDate>Fri, 02 Feb 2018 00:00:00 +0000</pubDate><guid>https://blog.7ys.top/posts/%E6%8C%87%E5%B0%96%E4%B9%8B%E4%B8%8A-%E7%A7%BB%E5%8A%A8%E7%AB%AFh5%E5%BC%80%E5%8F%91%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB/</guid><description>&lt;img src="https://blog.7ys.top/" alt="Featured image of post 指尖之上 - 移动端H5开发资源汇总" /&gt;
 &lt;blockquote&gt;
 &lt;p&gt;移动端 H5 开发过程中收藏的优质资源链接，涵盖布局、动画、设备 API 等各个方面。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="布局相关"&gt;布局相关
&lt;/h2&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: left"&gt;示例&lt;/th&gt;
 &lt;th style="text-align: left"&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;a class="link" href="http://tgideas.qq.com/book/danceonfingers/chapter1/section1/translateY.htm" target="_blank" rel="noopener"
 &gt;滑屏页面布局&lt;/a&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;移动端常见滑屏布局实现&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;a class="link" href="http://tgideas.qq.com/book/danceonfingers/chapter1/section1/tips-center-middle.shtml" target="_blank" rel="noopener"
 &gt;水平垂直居中&lt;/a&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;CSS 居中方案汇总&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;a class="link" href="http://tgideas.qq.com/book/danceonfingers/chapter1/section1/px-demo.shtml" target="_blank" rel="noopener"
 &gt;布局形式&lt;/a&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;常见布局形式示例&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;a class="link" href="http://tgideas.qq.com/book/danceonfingers/chapter1/section1/piclist.shtml" target="_blank" rel="noopener"
 &gt;图片列表&lt;/a&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;图片列表布局&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;a class="link" href="http://tgideas.qq.com/book/danceonfingers/chapter1/section1/margin-2.shtml" target="_blank" rel="noopener"
 &gt;屏幕适应&lt;/a&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;多分辨率适配方案&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;a class="link" href="http://tgideas.qq.com/book/danceonfingers/chapter1/section1/rem.html" target="_blank" rel="noopener"
 &gt;Rem 自适应&lt;/a&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Rem 布局详解&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;a class="link" href="http://tgideas.qq.com/book/danceonfingers/chapter1/section1/video.shtml" target="_blank" rel="noopener"
 &gt;视频自适应&lt;/a&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;响应式视频方案&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="css3-动画"&gt;CSS3 动画
&lt;/h2&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: left"&gt;示例&lt;/th&gt;
 &lt;th style="text-align: left"&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;a class="link" href="http://tgideas.qq.com/demo/css3/transform.htm" target="_blank" rel="noopener"
 &gt;Transform 变形&lt;/a&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;CSS3 Transform 详解&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;a class="link" href="http://tgideas.qq.com/demo/css3/transition.htm" target="_blank" rel="noopener"
 &gt;Transition 转换&lt;/a&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;CSS3 Transition 详解&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;a class="link" href="http://tgideas.qq.com/demo/css3/animation.htm" target="_blank" rel="noopener"
 &gt;Animation 动画&lt;/a&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;CSS3 Animation 详解&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;a class="link" href="http://tgideas.qq.com/book/danceonfingers/chapter2/section1/css3_0.html" target="_blank" rel="noopener"
 &gt;简单 CSS3 动画&lt;/a&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;入门动画示例&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;a class="link" href="http://tgideas.qq.com/book/danceonfingers/chapter2/section1/css3_1.html" target="_blank" rel="noopener"
 &gt;带点击交互的动画&lt;/a&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;交互动画示例&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="设备-api"&gt;设备 API
&lt;/h2&gt;&lt;h3 id="媒体相关"&gt;媒体相关
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: left"&gt;示例&lt;/th&gt;
 &lt;th style="text-align: left"&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;a class="link" href="http://tgideas.qq.com/book/danceonfingers/chapter2/section2/audio_api/" target="_blank" rel="noopener"
 &gt;Audio 事件支持检测&lt;/a&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Audio API 兼容性检测&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;a class="link" href="http://tgideas.qq.com/book/danceonfingers/chapter2/section2/camera.html" target="_blank" rel="noopener"
 &gt;摄像头捕捉&lt;/a&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;getUserMedia 摄像头调用&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;a class="link" href="http://tgideas.qq.com/book/danceonfingers/chapter2/section2/microphone-usermedia.html" target="_blank" rel="noopener"
 &gt;用户声音录制&lt;/a&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;麦克风录音功能&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;a class="link" href="http://tgideas.qq.com/book/danceonfingers/chapter2/section2/webspeech/" target="_blank" rel="noopener"
 &gt;Web Speech&lt;/a&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;语音识别 API&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;a class="link" href="http://sy.qq.com/brucewan/device-api/web-audio.html" target="_blank" rel="noopener"
 &gt;Web Audio API&lt;/a&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Web Audio 音频处理&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="传感器相关"&gt;传感器相关
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: left"&gt;示例&lt;/th&gt;
 &lt;th style="text-align: left"&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;a class="link" href="https://tgideas.qq.com/book/danceonfingers/chapter2/section2/geolocation.html" target="_blank" rel="noopener"
 &gt;地理定位&lt;/a&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Geolocation API 使用&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;a class="link" href="http://tgideas.qq.com/book/danceonfingers/chapter2/section2/deviceorientation.htm" target="_blank" rel="noopener"
 &gt;陀螺仪&lt;/a&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;DeviceOrientation 事件&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;a class="link" href="http://tgideas.qq.com/book/danceonfingers/chapter2/section2/devicemotion.htm" target="_blank" rel="noopener"
 &gt;运动传感器&lt;/a&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;DeviceMotion 事件&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;a class="link" href="http://tgideas.qq.com/book/danceonfingers/chapter2/section2/vibration/" target="_blank" rel="noopener"
 &gt;设备震动&lt;/a&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Vibration API&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;a class="link" href="http://tgideas.qq.com/book/danceonfingers/chapter2/section2/Battery.htm" target="_blank" rel="noopener"
 &gt;电池状态&lt;/a&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Battery API&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;a class="link" href="http://tgideas.qq.com/book/danceonfingers/chapter2/section2/ambient-light.htm" target="_blank" rel="noopener"
 &gt;环境光&lt;/a&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Ambient Light API&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;a class="link" href="http://tgideas.qq.com/book/danceonfingers/chapter2/section2/network/" target="_blank" rel="noopener"
 &gt;网络信息&lt;/a&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Network Information API&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="精品案例"&gt;精品案例
&lt;/h2&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: left"&gt;示例&lt;/th&gt;
 &lt;th style="text-align: left"&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;a class="link" href="http://xl3d.qq.com/act/a20151111xlgz/index.html" target="_blank" rel="noopener"
 &gt;驯龙公主&lt;/a&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;3D 交互案例&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;a class="link" href="http://pao.qq.com/act/a20160613ppz/" target="_blank" rel="noopener"
 &gt;跑就有型&lt;/a&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;跑步主题互动&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;a class="link" href="http://up.qq.com/act/a20160318paper/index.htm" target="_blank" rel="noopener"
 &gt;帧动画-互娱周末&lt;/a&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;帧动画应用&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;a class="link" href="http://tgideas.qq.com/2016/threejs/demo/scene.html" target="_blank" rel="noopener"
 &gt;Three.js 完整实例&lt;/a&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;3D 场景示例&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;a class="link" href="http://tgideas.qq.com/flash/quanchenTest/html5CrossDomainTest/demoIndex_unIntegrate.html" target="_blank" rel="noopener"
 &gt;CreateJS 动画&lt;/a&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Canvas 动画方案&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="工具与框架"&gt;工具与框架
&lt;/h2&gt;&lt;h3 id="常用框架"&gt;常用框架
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;// Zepto - 轻量级 jQuery 替代品
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;// &amp;lt;script src=&amp;#34;zepto.min.js&amp;#34;&amp;gt;&amp;lt;/script&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;// Hammer.js - 手势库
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;// &amp;lt;script src=&amp;#34;hammer.min.js&amp;#34;&amp;gt;&amp;lt;/script&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;// Swiper - 轮播滑动组件
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;// &amp;lt;script src=&amp;#34;swiper.min.js&amp;#34;&amp;gt;&amp;lt;/script&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;// Animate.css - 动画库
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;// &amp;lt;link href=&amp;#34;animate.min.css&amp;#34;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;// Three.js - 3D 渲染
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;// &amp;lt;script src=&amp;#34;three.min.js&amp;#34;&amp;gt;&amp;lt;/script&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="移动端调试"&gt;移动端调试
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;// VConsole - 移动端调试面板
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;// &amp;lt;script src=&amp;#34;vconsole.min.js&amp;#34;&amp;gt;&amp;lt;/script&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;new&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;VConsole&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;// Eruda - 另一个移动端调试工具
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;// &amp;lt;script src=&amp;#34;eruda.min.js&amp;#34;&amp;gt;&amp;lt;/script&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;eruda&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;init&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="移动端适配方案"&gt;移动端适配方案
&lt;/h2&gt;&lt;h3 id="1-viewport-视口设置"&gt;1. viewport 视口设置
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt;&lt;span style="color:#f92672"&gt;meta&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;name&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;viewport&amp;#34;&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;content&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;width=device-width, initial-scale=1.0, 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; maximum-scale=1.0, user-scalable=no&amp;#34;&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="2-rem-适配方案"&gt;2. Rem 适配方案
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;// 根据 dpr 和屏幕宽度动态设置 font-size
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;function&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;setRem&lt;/span&gt;() {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;const&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;dpr&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; window.&lt;span style="color:#a6e22e"&gt;devicePixelRatio&lt;/span&gt; &lt;span style="color:#f92672"&gt;||&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;const&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;width&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; document.&lt;span style="color:#a6e22e"&gt;documentElement&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;clientWidth&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;const&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;fontSize&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;width&lt;/span&gt; &lt;span style="color:#f92672"&gt;/&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;10&lt;/span&gt;; &lt;span style="color:#75715e"&gt;// 设计稿 750px 时，1rem = 75px
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; document.&lt;span style="color:#a6e22e"&gt;documentElement&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;style&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;fontSize&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;fontSize&lt;/span&gt; &lt;span style="color:#f92672"&gt;+&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;px&amp;#39;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;setRem&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;window.&lt;span style="color:#a6e22e"&gt;addEventListener&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;resize&amp;#39;&lt;/span&gt;, &lt;span style="color:#a6e22e"&gt;setRem&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="3-一像素边框"&gt;3. 一像素边框
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-css" data-lang="css"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;/* 使用 transform 实现物理像素边框 */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;.&lt;span style="color:#a6e22e"&gt;border-1px&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;position&lt;/span&gt;: &lt;span style="color:#66d9ef"&gt;relative&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;.&lt;span style="color:#a6e22e"&gt;border-1px&lt;/span&gt;::&lt;span style="color:#a6e22e"&gt;after&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;content&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#39;&amp;#39;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;position&lt;/span&gt;: &lt;span style="color:#66d9ef"&gt;absolute&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;bottom&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;left&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;right&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;height&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;px&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;background&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;#ddd&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;transform&lt;/span&gt;: scaleY(&lt;span style="color:#ae81ff"&gt;0.5&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="性能优化建议"&gt;性能优化建议
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;减少重排重绘&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-css" data-lang="css"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;/* 避免 */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;element&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;style&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;width&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;100px&amp;#39;&lt;/span&gt;&lt;span style="color:#f92672"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;element&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;style&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;height&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;100px&amp;#39;&lt;/span&gt;&lt;span style="color:#f92672"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;/* 使用 transform */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;element&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;style&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;transform&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;translate(100px, 100px)&amp;#39;&lt;/span&gt;&lt;span style="color:#f92672"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;使用 CSS 动画&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-css" data-lang="css"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;/* 开启 GPU 加速 */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;.&lt;span style="color:#a6e22e"&gt;animate&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;transform&lt;/span&gt;: translateZ(&lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;will-change&lt;/span&gt;: &lt;span style="color:#66d9ef"&gt;transform&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;图片优化&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;使用 WebP 格式&lt;/li&gt;
&lt;li&gt;根据 dpr 提供 @2x @3x 图片&lt;/li&gt;
&lt;li&gt;使用懒加载&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="参考资源"&gt;参考资源
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://caniuse.com/" target="_blank" rel="noopener"
 &gt;Can I Use&lt;/a&gt; - 特性兼容性查询&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://developer.mozilla.org/" target="_blank" rel="noopener"
 &gt;MDN Web Docs&lt;/a&gt; - Web API 文档&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="http://tgideas.qq.com/" target="_blank" rel="noopener"
 &gt;腾讯 TGideas&lt;/a&gt; - 移动端开发规范&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;

 &lt;blockquote&gt;
 &lt;p&gt;这些资源帮助我更好地理解了移动端 H5 开发的各个方面，希望对您也有帮助。&lt;/p&gt;

 &lt;/blockquote&gt;</description></item></channel></rss>