<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Emiya&apos;s site</title>
    <link>https://emiya.com.cn</link>
    <description>前端开发者 Emiya 的个人博客</description>
    <language>zh-CN</language>
    <copyright>© 2026 Emiya</copyright>
    <lastBuildDate>Mon, 15 Sep 2025 11:50:35 GMT</lastBuildDate>
    <atom:link href="https://emiya.com.cn/feed.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>如何在多个 git 项目中使用不同的 git 账号</title>
      <link>https://emiya.com.cn/posts/muti-git</link>
      <guid isPermaLink="true">https://emiya.com.cn/posts/muti-git</guid>
      <description></description>
      <pubDate>Mon, 15 Sep 2025 11:50:35 GMT</pubDate>
      <atom:updated>2025-09-15T11:50:35.000Z</atom:updated>
      <author>noreply@emiya.com.cn (Emiya)</author>
    </item>
    <item>
      <title>伪造 git commit 时间</title>
      <link>https://emiya.com.cn/posts/edit-github-commit-time</link>
      <guid isPermaLink="true">https://emiya.com.cn/posts/edit-github-commit-time</guid>
      <description>or</description>
      <pubDate>Fri, 12 Sep 2025 17:00:35 GMT</pubDate>
      <atom:updated>2025-09-12T17:00:35.000Z</atom:updated>
      <author>noreply@emiya.com.cn (Emiya)</author>
    </item>
    <item>
      <title>如何使用全局的 .gitignore</title>
      <link>https://emiya.com.cn/posts/global-gitignore</link>
      <guid isPermaLink="true">https://emiya.com.cn/posts/global-gitignore</guid>
      <description>当我们给一些开源项目提交代码时，可能会有一些不需要提交的文件，如 , 但是项目作者并不希望将各种各样的偏个人习惯的文件放到 中，这时我们可以使用全局的 文件来忽略这些文件。 设置 git config 还有一种办法可以按照项目来设置，在 文件中添加需要忽略的文件。 文档：https://git-scm.com/docs/gitignore</description>
      <pubDate>Tue, 30 Jul 2024 17:42:00 GMT</pubDate>
      <atom:updated>2024-07-30T17:42:00.000Z</atom:updated>
      <author>noreply@emiya.com.cn (Emiya)</author>
    </item>
    <item>
      <title>如何使单词换行时自动插入连字符“-”</title>
      <link>https://emiya.com.cn/posts/hyphens</link>
      <guid isPermaLink="true">https://emiya.com.cn/posts/hyphens</guid>
      <description>当文章中包含了一些英文的段落时，段落的右边总是对不齐的，简直逼死强迫症啊，但是如果使用了 又会带来一些文字/单词间距不一致的问题。 所以在一些场景下使用 将句子填满整行然后换行是最优解，但是这样又会导致破坏英文单词的连贯性。在这种情况下可以使用 来使浏览器可以自由地在适当的连字符点自动断开单词，即： 当然，浏览器也不是那么的全能，还需要我们主动告诉浏览器当前的语言来帮助浏览器选择是否要插入连字符</description>
      <pubDate>Sun, 18 Jun 2023 18:18:18 GMT</pubDate>
      <atom:updated>2023-06-18T18:18:18.000Z</atom:updated>
      <author>noreply@emiya.com.cn (Emiya)</author>
    </item>
    <item>
      <title>新的开始</title>
      <link>https://emiya.com.cn/posts/new-start</link>
      <guid isPermaLink="true">https://emiya.com.cn/posts/new-start</guid>
      <description>距离上次更新已经近三年了，这三年经历好多，找到一份还不错的工作、谈了很好的女朋友，可谓事业爱情双丰收，唯独冷落了我的博客，一鸽就是三年。 不过，总算是又恢复了起来，用 Next 草草搭了一个，目前非常简陋，打算每天抽点时间打理一点，也算是在浩瀚互联网宇宙中创造出的的一颗属于自己的小星球了。</description>
      <pubDate>Sun, 18 Jun 2023 16:59:45 GMT</pubDate>
      <atom:updated>2023-06-18T16:59:45.000Z</atom:updated>
      <author>noreply@emiya.com.cn (Emiya)</author>
    </item>
    <item>
      <title>使用命令行创建及合并 pull request</title>
      <link>https://emiya.com.cn/posts/pr-cli</link>
      <guid isPermaLink="true">https://emiya.com.cn/posts/pr-cli</guid>
      <description>github 提供了官方的命令行工具 ，gh文档 查看pr状态</description>
      <pubDate>Thu, 25 May 2023 18:00:35 GMT</pubDate>
      <atom:updated>2023-05-25T18:00:35.000Z</atom:updated>
      <author>noreply@emiya.com.cn (Emiya)</author>
    </item>
    <item>
      <title>CSS3 动画优化</title>
      <link>https://emiya.com.cn/posts/css3-animation-optimize</link>
      <guid isPermaLink="true">https://emiya.com.cn/posts/css3-animation-optimize</guid>
      <description>José Rosário的一篇文章，看完后受益匪浅，尤其是最后分离动画块的例子 https://medium.com/outsystems-experts/how-to-achieve-60-fps-animations-with-css3-db7b98610108 仔细研究了一下实现原理，源代码和个人理解如下： 关于最后的js部分，其实click事件在手机上触发是有延迟的，大约200ms左右，体…</description>
      <pubDate>Mon, 02 Mar 2020 15:51:25 GMT</pubDate>
      <atom:updated>2020-03-02T15:51:25.000Z</atom:updated>
      <author>noreply@emiya.com.cn (Emiya)</author>
    </item>
    <item>
      <title>实现一个固定宽高比的 div 盒子</title>
      <link>https://emiya.com.cn/posts/fixed-ratio-box</link>
      <guid isPermaLink="true">https://emiya.com.cn/posts/fixed-ratio-box</guid>
      <description>要实现一个固定宽高比的div，可以使用 中百分比为宽度的百分比这个原理 这时会生成一个铺满屏幕的75%宽高比的盒子，那么要控制宽度，只需要在外面添加一层div 最外层div不仅可以控制宽度，还可以方便的设置一些padding，边框之类。 最后将这个功能模块化： 缺点就是盒子宽度和宽高比要分开来设置，以后再继续研究改进。</description>
      <pubDate>Mon, 24 Feb 2020 20:19:15 GMT</pubDate>
      <atom:updated>2020-02-24T20:19:15.000Z</atom:updated>
      <author>noreply@emiya.com.cn (Emiya)</author>
    </item>
    <item>
      <title>小型大写字母</title>
      <link>https://emiya.com.cn/posts/small-caps</link>
      <guid isPermaLink="true">https://emiya.com.cn/posts/small-caps</guid>
      <description>使用 可以将一个英文字符转变为小型大写字母 但是他的高度是基于源码中的字符高度，即Nasa会转变为N(大写)a(大写，但高度不变)s(同)a(同)，也就是只有asa转变成功了，那么要注意的就是要先把要转变的字符转换为小写，然后再转变小型大写，即</description>
      <pubDate>Sat, 22 Feb 2020 17:53:54 GMT</pubDate>
      <atom:updated>2020-02-22T17:53:54.000Z</atom:updated>
      <author>noreply@emiya.com.cn (Emiya)</author>
    </item>
    <item>
      <title>清除浮动原理</title>
      <link>https://emiya.com.cn/posts/clear-float</link>
      <guid isPermaLink="true">https://emiya.com.cn/posts/clear-float</guid>
      <description>clear属性的值有left,right,both,none用于指定盒子的哪一侧不应该紧挨着盒子。 原理就是浏览器会在这个元素上方添加margin-left，从而将元素顶下来，如果你手动设置margin-left值，除非比浏览器自动设置的值大，否则是没有效果的。</description>
      <pubDate>Fri, 21 Feb 2020 20:31:22 GMT</pubDate>
      <atom:updated>2020-02-21T20:31:22.000Z</atom:updated>
      <author>noreply@emiya.com.cn (Emiya)</author>
    </item>
    <item>
      <title>JS 自定义事件</title>
      <link>https://emiya.com.cn/posts/custom-event</link>
      <guid isPermaLink="true">https://emiya.com.cn/posts/custom-event</guid>
      <description>今天了解到了js的自定义事件，通过自定义事件可以解决一些用普通办法很难解决的事情，希望以后在遇到难题时可以扩展思路，尝试一下使用自定义事件。并且自定义事件最重要的优点就是可以降低代码的耦合度 简单的自定义事件就是通过 构造器来 new 一个对象，如 这个ev就表示一个look事件，可以通过 来在具体的Element上触发这个事件，但是要捕获这个事件，还需要添加监听器，因为这个ev对象是冒泡的，所以…</description>
      <pubDate>Wed, 19 Feb 2020 14:51:05 GMT</pubDate>
      <atom:updated>2020-02-19T14:51:05.000Z</atom:updated>
      <author>noreply@emiya.com.cn (Emiya)</author>
    </item>
    <item>
      <title>遍历 NodeList 对象时的性能优化</title>
      <link>https://emiya.com.cn/posts/traverse-nodelist-optimize</link>
      <guid isPermaLink="true">https://emiya.com.cn/posts/traverse-nodelist-optimize</guid>
      <description>看到《JavaScript中高级编程》中提到，对于getElementsByClassName()之类方法返回的Nodelist对象，“应该尽量减少访问NodeList的次数，因为每次访问NodeList，都会运行一次基于文档的查询。” 针对这个问题，解决办法就是在遍历之前先将NodeList复制一份，对这个复制节点进行遍历。这个办法是否有效，能提高多少效率，我做了一个测试 测试代码在最后，先看结…</description>
      <pubDate>Sat, 01 Feb 2020 21:17:16 GMT</pubDate>
      <atom:updated>2020-02-01T21:17:16.000Z</atom:updated>
      <author>noreply@emiya.com.cn (Emiya)</author>
    </item>
    <item>
      <title>UserAgent 界的奇葩——Opera</title>
      <link>https://emiya.com.cn/posts/opera-useragent</link>
      <guid isPermaLink="true">https://emiya.com.cn/posts/opera-useragent</guid>
      <description>选自《JavaScript高级程序设计 第三版》 仅就用户代理字符串而言，Opera 应该是最有争议的一款浏览器了。Opera 默认的用户代理字符串是所有现代浏览器中最合理的——正确地标识了自身及其版本号。在 Opera 8.0 之前，其用户代理字符串采用如下格式： Windows XP 中的 Opera 7.54 会显示下面的用户代理字符串： Opera 8 发布后，用户代理字符串的“语言”部分…</description>
      <pubDate>Thu, 30 Jan 2020 16:23:07 GMT</pubDate>
      <atom:updated>2020-01-30T16:23:07.000Z</atom:updated>
      <author>noreply@emiya.com.cn (Emiya)</author>
    </item>
    <item>
      <title>为什么所有浏览器的 userAgent 都带 Mozilla</title>
      <link>https://emiya.com.cn/posts/mozilla-useragent</link>
      <guid isPermaLink="true">https://emiya.com.cn/posts/mozilla-useragent</guid>
      <description>最早的时候有一个浏览器叫NCSA Mosaic，把自己标称为NCSA Mosaic/2.0 (Windows 3.1)，它支持文字显示的同时还支持图片，于是Web开始好玩起来。 然后出现了一个新的网页浏览器，“Mozilla”，其实就是“Mosaic终结者”的意思，这搞的Mosaic很不爽，（毕竟Mosaic出道早，江湖老），新浏览器最后正式公布的名称是Netscape，它把自己标称为Mozill…</description>
      <pubDate>Thu, 16 May 2019 21:08:01 GMT</pubDate>
      <atom:updated>2019-05-16T21:08:01.000Z</atom:updated>
      <author>noreply@emiya.com.cn (Emiya)</author>
    </item>
    <item>
      <title>JavaScript 中 querySelectorAll 与 getElementsByClassName 的区别</title>
      <link>https://emiya.com.cn/posts/queryselectorall-and-getelementsbyclassname</link>
      <guid isPermaLink="true">https://emiya.com.cn/posts/queryselectorall-and-getelementsbyclassname</guid>
      <description>单单讨论最基础的功能：选择class对象来说，querySelectorAll()是静态的，函数一旦被使用，内容就不会再改变 而getElementsByClassName()是动态的，其长度会随着class的动态修改而变化，也就是说用for循环批量删除class属性时是删除不完的，例如： 此时只有一半的带&quot;unchecked&quot;属性的元素会成功删除掉此元素，这时我们如果换用 就可以成功删除完整</description>
      <pubDate>Tue, 15 Jan 2019 20:10:16 GMT</pubDate>
      <atom:updated>2019-01-15T20:10:16.000Z</atom:updated>
      <author>noreply@emiya.com.cn (Emiya)</author>
    </item>
    <item>
      <title>开始</title>
      <link>https://emiya.com.cn/posts/start</link>
      <guid isPermaLink="true">https://emiya.com.cn/posts/start</guid>
      <description>做这个网站的目的呢，一是想提高自己的知识水平，自己给自己提一些需求并努力完成，也为以后的工作打个基础。二是记录自己对各种框架，优秀代码的学习体会，还有各种踩过的坑以及爬坑办法。以后会在在课余时间开发一些小东西放到“我的应用”里，不过这些都是后话了，目前最重要的是扎实基础。不忘初心，脚踏实地。 八月份产生了做一个属于我自己的网站的想法，九月份开始先构思、设计、定位，框架选用的是Django，语言当然…</description>
      <pubDate>Fri, 09 Nov 2018 11:53:37 GMT</pubDate>
      <atom:updated>2018-11-09T11:53:37.000Z</atom:updated>
      <author>noreply@emiya.com.cn (Emiya)</author>
    </item>
  </channel>
</rss>