<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0"><channel><title>星野集-个人编程学习与开发笔记归档</title><link>https://www.xingyeji.com/</link><atom:link href="https://www.xingyeji.com/rss.xml" rel="self" type="application/rss+xml"/><description>站长博客 | 前端核心技术基础踩坑实录</description><generator>Halo v2.23.2</generator><language>zh-cn</language><image><url>https://www.xingyeji.com/upload/xingyejiqian.png</url><title>星野集-个人编程学习与开发笔记归档</title><link>https://www.xingyeji.com/</link></image><lastBuildDate>Wed, 15 Apr 2026 10:25:38 GMT</lastBuildDate><item><title><![CDATA[JavaScript贪吃蛇游戏]]></title><link>https://www.xingyeji.com/archives/wei-ming-ming-wen-zhang-9zuON3zf</link><description><![CDATA[<img src="https://www.xingyeji.com/plugins/feed/assets/telemetry.gif?title=JavaScript%E8%B4%AA%E5%90%83%E8%9B%87%E6%B8%B8%E6%88%8F&amp;url=/archives/wei-ming-ming-wen-zhang-9zuON3zf" width="1" height="1" alt="" style="opacity:0;">贪吃蛇是一款经典的休闲游戏，它不仅简单易玩，而且是学习JavaScript和Canvas API的绝佳例子。今天，我们将学习如何使用JavaScript和Canvas API实现一个完整的贪吃蛇游戏，包括蛇的移动、食物生成、碰撞检测和游戏控制。 游戏概述 贪吃蛇游戏的基本规则很简单：玩家控制一条蛇在]]></description><guid isPermaLink="false">/archives/wei-ming-ming-wen-zhang-9zuON3zf</guid><dc:creator>星野集</dc:creator><category>有趣的代码</category><pubDate>Sat, 11 Apr 2026 07:38:58 GMT</pubDate></item><item><title><![CDATA[includes()：数组中快速查找元素的实用工具 ]]></title><link>https://www.xingyeji.com/archives/includes-shu-zu-kuai-su-cha-zhao-yuan-su</link><description><![CDATA[<img src="https://www.xingyeji.com/plugins/feed/assets/telemetry.gif?title=includes%28%29%EF%BC%9A%E6%95%B0%E7%BB%84%E4%B8%AD%E5%BF%AB%E9%80%9F%E6%9F%A5%E6%89%BE%E5%85%83%E7%B4%A0%E7%9A%84%E5%AE%9E%E7%94%A8%E5%B7%A5%E5%85%B7%20&amp;url=/archives/includes-shu-zu-kuai-su-cha-zhao-yuan-su" width="1" height="1" alt="" style="opacity:0;">在编程中，我们经常需要判断一个数组里是否包含某个特定元素。比如，检查用户选择的兴趣标签里有没有“阅读”，或者验证购物车中是否已添加某件商品。这时，includes() 方法就能派上用场——它是 JavaScript 数组自带的一个简单工具，专门用来完成这类“存在性检查”。 一、includes()]]></description><guid isPermaLink="false">/archives/includes-shu-zu-kuai-su-cha-zhao-yuan-su</guid><dc:creator>星野集</dc:creator><category>笔记</category><category>JavaScript</category><pubDate>Wed, 17 Dec 2025 04:59:10 GMT</pubDate></item><item><title><![CDATA[认识 indexOf()：帮你快速定位元素的“位置探测器”]]></title><link>https://www.xingyeji.com/archives/ren-shi-indexof-bang-ni-kuai-su-ding-wei-yuan-su-de-wei-zhi-tan-ce-qi</link><description><![CDATA[<img src="https://www.xingyeji.com/plugins/feed/assets/telemetry.gif?title=%E8%AE%A4%E8%AF%86%20indexOf%28%29%EF%BC%9A%E5%B8%AE%E4%BD%A0%E5%BF%AB%E9%80%9F%E5%AE%9A%E4%BD%8D%E5%85%83%E7%B4%A0%E7%9A%84%E2%80%9C%E4%BD%8D%E7%BD%AE%E6%8E%A2%E6%B5%8B%E5%99%A8%E2%80%9D&amp;url=/archives/ren-shi-indexof-bang-ni-kuai-su-ding-wei-yuan-su-de-wei-zhi-tan-ce-qi" width="1" height="1" alt="" style="opacity:0;">在编程中，我们经常需要在一个序列（比如一串文字、一组数据中）找到某个特定元素的位置。这时候，indexOf() 就是一个实用的工具。它像一把“位置探测器”，能告诉你目标元素在序列中的索引（即位置编号），如果找不到，还会明确告诉你“没找到”。 先理解“索引”：位置编号的规则 在讲解 indexOf()]]></description><guid isPermaLink="false">/archives/ren-shi-indexof-bang-ni-kuai-su-ding-wei-yuan-su-de-wei-zhi-tan-ce-qi</guid><dc:creator>星野集</dc:creator><category>笔记</category><category>JavaScript</category><pubDate>Tue, 16 Dec 2025 14:23:36 GMT</pubDate></item><item><title><![CDATA[数组合并：JavaScript数组拼接的那些事 ]]></title><link>https://www.xingyeji.com/archives/shu-zu-he-bing-javascriptshu-zu-pin-jie-de-na-xie-shi</link><description><![CDATA[<img src="https://www.xingyeji.com/plugins/feed/assets/telemetry.gif?title=%E6%95%B0%E7%BB%84%E5%90%88%E5%B9%B6%EF%BC%9AJavaScript%E6%95%B0%E7%BB%84%E6%8B%BC%E6%8E%A5%E7%9A%84%E9%82%A3%E4%BA%9B%E4%BA%8B%20&amp;url=/archives/shu-zu-he-bing-javascriptshu-zu-pin-jie-de-na-xie-shi" width="1" height="1" alt="" style="opacity:0;">在JavaScript的世界里，数组就像一排有序的盒子，每个盒子里装着数据。有时候，我们需要把两排甚至多排盒子合为一排，让它们“手拉手”站在一起，这就是数组拼接。看似简单的需求，却藏着几种不同的实现方式，各有各的性格。 一、最“老实”的拼接：concat()方法 concat()是数组自带的一个方法]]></description><guid isPermaLink="false">/archives/shu-zu-he-bing-javascriptshu-zu-pin-jie-de-na-xie-shi</guid><dc:creator>星野集</dc:creator><category>笔记</category><category>JavaScript</category><pubDate>Tue, 16 Dec 2025 11:34:08 GMT</pubDate></item><item><title><![CDATA[轻松搞懂 JavaScript 数组的 splice() 方法]]></title><link>https://www.xingyeji.com/archives/qing-song-gao-dong-javascript-shu-zu-de-splice-fang-fa</link><description><![CDATA[<img src="https://www.xingyeji.com/plugins/feed/assets/telemetry.gif?title=%E8%BD%BB%E6%9D%BE%E6%90%9E%E6%87%82%20JavaScript%20%E6%95%B0%E7%BB%84%E7%9A%84%20splice%28%29%20%E6%96%B9%E6%B3%95&amp;url=/archives/qing-song-gao-dong-javascript-shu-zu-de-splice-fang-fa" width="1" height="1" alt="" style="opacity:0;">如果你刚接触 JavaScript 数组操作，一定会对 splice() 这个方法感到好奇——它名字听起来有点奇怪，但却是数组修改的“万能工具”。今天我们就用最直白的语言，结合具体例子，把这个“万能工具”的用法彻底搞清楚。 一句话记住 splice() 的核心作用 splice() 是数组的“手术刀]]></description><guid isPermaLink="false">/archives/qing-song-gao-dong-javascript-shu-zu-de-splice-fang-fa</guid><dc:creator>星野集</dc:creator><category>笔记</category><category>JavaScript</category><pubDate>Sat, 13 Dec 2025 14:52:12 GMT</pubDate></item><item><title><![CDATA[与Flexible.js的邂逅：一段移动端适配的旧时光]]></title><link>https://www.xingyeji.com/archives/yu-flexible.js-de-xie-hou-yi-duan-yi-dong-duan-gua-pei-de-jiu-shi-guang</link><description><![CDATA[<img src="https://www.xingyeji.com/plugins/feed/assets/telemetry.gif?title=%E4%B8%8EFlexible.js%E7%9A%84%E9%82%82%E9%80%85%EF%BC%9A%E4%B8%80%E6%AE%B5%E7%A7%BB%E5%8A%A8%E7%AB%AF%E9%80%82%E9%85%8D%E7%9A%84%E6%97%A7%E6%97%B6%E5%85%89&amp;url=/archives/yu-flexible.js-de-xie-hou-yi-duan-yi-dong-duan-gua-pei-de-jiu-shi-guang" width="1" height="1" alt="" style="opacity:0;">在移动端开发的早期，面对纷繁复杂的屏幕尺寸，如何实现优雅的适配，曾是每个前端开发者必须面对的课题。那时，viewport 标签还未像今天这般强大，CSS3 的 vw 单位也尚未得到普遍支持。正是在这样的背景下，我遇到了 Flexible.js，一个来自手淘团队的轻巧解决方案。 它并非一个功能繁复的框]]></description><guid isPermaLink="false">/archives/yu-flexible.js-de-xie-hou-yi-duan-yi-dong-duan-gua-pei-de-jiu-shi-guang</guid><dc:creator>星野集</dc:creator><category>笔记</category><category>CSS</category><pubDate>Tue, 25 Nov 2025 12:19:51 GMT</pubDate></item><item><title><![CDATA[CSS3核心特性-第10章-10.2-动画控制与事件]]></title><link>https://www.xingyeji.com/archives/css3-dong-hua-kong-zhi-yu-shi-jian</link><description><![CDATA[<img src="https://www.xingyeji.com/plugins/feed/assets/telemetry.gif?title=CSS3%E6%A0%B8%E5%BF%83%E7%89%B9%E6%80%A7-%E7%AC%AC10%E7%AB%A0-10.2-%E5%8A%A8%E7%94%BB%E6%8E%A7%E5%88%B6%E4%B8%8E%E4%BA%8B%E4%BB%B6&amp;url=/archives/css3-dong-hua-kong-zhi-yu-shi-jian" width="1" height="1" alt="" style="opacity:0;">学习目标 掌握 animation-play-state 和 animation-fill-mode 属性的语法与取值 实现动画的暂停/播放控制及状态保持效果 学会监听 animationstart/animationend 等动画事件并处理回调逻辑 概念讲解 CSS 动画控制是指通过属性和事件对动]]></description><guid isPermaLink="false">/archives/css3-dong-hua-kong-zhi-yu-shi-jian</guid><dc:creator>星野集</dc:creator><category>HTML5+CSS3教程</category><category>CSS</category><pubDate>Tue, 25 Nov 2025 04:39:39 GMT</pubDate></item><item><title><![CDATA[文字跑马灯的技术实现与美学思考]]></title><link>https://www.xingyeji.com/archives/wen-zi-pao-ma-deng-de-ji-shu-shi-xian-yu-mei-xue-si-kao</link><description><![CDATA[<img src="https://www.xingyeji.com/plugins/feed/assets/telemetry.gif?title=%E6%96%87%E5%AD%97%E8%B7%91%E9%A9%AC%E7%81%AF%E7%9A%84%E6%8A%80%E6%9C%AF%E5%AE%9E%E7%8E%B0%E4%B8%8E%E7%BE%8E%E5%AD%A6%E6%80%9D%E8%80%83&amp;url=/archives/wen-zi-pao-ma-deng-de-ji-shu-shi-xian-yu-mei-xue-si-kao" width="1" height="1" alt="" style="opacity:0;">]]></description><guid isPermaLink="false">/archives/wen-zi-pao-ma-deng-de-ji-shu-shi-xian-yu-mei-xue-si-kao</guid><dc:creator>星野集</dc:creator><category>有趣的代码</category><category>笔记</category><pubDate>Tue, 18 Nov 2025 09:22:40 GMT</pubDate></item><item><title><![CDATA[CSS3核心特性-第10章-10.1-动画基础语法]]></title><link>https://www.xingyeji.com/archives/css3-dong-hua-ji-chu-yu-fa</link><description><![CDATA[<img src="https://www.xingyeji.com/plugins/feed/assets/telemetry.gif?title=CSS3%E6%A0%B8%E5%BF%83%E7%89%B9%E6%80%A7-%E7%AC%AC10%E7%AB%A0-10.1-%E5%8A%A8%E7%94%BB%E5%9F%BA%E7%A1%80%E8%AF%AD%E6%B3%95&amp;url=/archives/css3-dong-hua-ji-chu-yu-fa" width="1" height="1" alt="" style="opacity:0;">学习目标 掌握 @keyframes 关键帧规则的定义方法 理解 animation 属性的核心子属性及其取值 能够编写简单的循环动画和单次动画效果 区分动画与过渡（transition）的适用场景 概念讲解 CSS3 动画（Animation）是通过 @keyframes 定义关键帧序列，控制元素]]></description><guid isPermaLink="false">/archives/css3-dong-hua-ji-chu-yu-fa</guid><dc:creator>星野集</dc:creator><category>HTML5+CSS3教程</category><category>CSS</category><pubDate>Sun, 16 Nov 2025 13:10:34 GMT</pubDate></item><item><title><![CDATA[CSS3核心特性-第9章-9.4-实战：交互动效设计]]></title><link>https://www.xingyeji.com/archives/css3-shi-zhan-jiao-hu-dong-xiao-she-ji</link><description><![CDATA[<img src="https://www.xingyeji.com/plugins/feed/assets/telemetry.gif?title=CSS3%E6%A0%B8%E5%BF%83%E7%89%B9%E6%80%A7-%E7%AC%AC9%E7%AB%A0-9.4-%E5%AE%9E%E6%88%98%EF%BC%9A%E4%BA%A4%E4%BA%92%E5%8A%A8%E6%95%88%E8%AE%BE%E8%AE%A1&amp;url=/archives/css3-shi-zhan-jiao-hu-dong-xiao-she-ji" width="1" height="1" alt="" style="opacity:0;">一、学习目标 掌握3种核心交互动效的实现逻辑：按钮状态变化、导航菜单切换、3D卡片翻转 理解动效设计的性能优化原则（如硬件加速、避免过度重绘） 能够综合运用transition、transform和perspective属性构建复杂交互 二、概念讲解：交互动效设计原则 交互动效是提升用户体验的关键手]]></description><guid isPermaLink="false">/archives/css3-shi-zhan-jiao-hu-dong-xiao-she-ji</guid><dc:creator>星野集</dc:creator><category>HTML5+CSS3教程</category><category>CSS</category><pubDate>Tue, 11 Nov 2025 14:17:05 GMT</pubDate></item><item><title><![CDATA[css中的单位em和rem的区别]]></title><link>https://www.xingyeji.com/archives/css-zhong-de-dan-wei-em-he-rem-de-qu-bie</link><description><![CDATA[<img src="https://www.xingyeji.com/plugins/feed/assets/telemetry.gif?title=css%E4%B8%AD%E7%9A%84%E5%8D%95%E4%BD%8Dem%E5%92%8Crem%E7%9A%84%E5%8C%BA%E5%88%AB&amp;url=/archives/css-zhong-de-dan-wei-em-he-rem-de-qu-bie" width="1" height="1" alt="" style="opacity:0;">在前端学习中你会遇到一个问题：em和rem这两个长度单位到底该如何选择？它们的名称如此相似，实际应用场景却大相径庭。起初，我常因混淆二者导致布局错位或样式调试耗时，直到近日系统梳理后，才逐渐摸透了它们的脾气。以下结合实践，记录我的理解与使用心得。 先明确本质：em与rem的核心差异 em：基于父元素]]></description><guid isPermaLink="false">/archives/css-zhong-de-dan-wei-em-he-rem-de-qu-bie</guid><dc:creator>星野集</dc:creator><category>笔记</category><category>CSS</category><pubDate>Sun, 2 Nov 2025 04:54:50 GMT</pubDate></item><item><title><![CDATA[救了大命！我再也不用手动调 CSS 属性顺序了]]></title><link>https://www.xingyeji.com/archives/css-shu-xing-zi-dong-pai-xu</link><description><![CDATA[<img src="https://www.xingyeji.com/plugins/feed/assets/telemetry.gif?title=%E6%95%91%E4%BA%86%E5%A4%A7%E5%91%BD%EF%BC%81%E6%88%91%E5%86%8D%E4%B9%9F%E4%B8%8D%E7%94%A8%E6%89%8B%E5%8A%A8%E8%B0%83%20CSS%20%E5%B1%9E%E6%80%A7%E9%A1%BA%E5%BA%8F%E4%BA%86&amp;url=/archives/css-shu-xing-zi-dong-pai-xu" width="1" height="1" alt="" style="opacity:0;">有没有过这种情况？ 你辛辛苦苦写的 CSS，保存后打开一看——position挤在width后面，color跑去了display底下，像菜市场摊位乱摆；或者同事改了个按钮样式，属性顺序全乱，你盯着代码半天反应不过来：“这行到底是管位置的还是管颜色的？” 上周我刚被这事儿烦到摔鼠标——帮新人改他的登录]]></description><guid isPermaLink="false">/archives/css-shu-xing-zi-dong-pai-xu</guid><dc:creator>星野集</dc:creator><category>笔记</category><category>开发技巧</category><pubDate>Sun, 19 Oct 2025 12:18:35 GMT</pubDate></item><item><title><![CDATA[别再死磕固定宽度了！我踩了3次坑才搞懂的响应式容器“舒服密码”]]></title><link>https://www.xingyeji.com/archives/xiang-ying-shi-rong-qi-kuan-du-she-ji-lu-ji</link><description><![CDATA[<img src="https://www.xingyeji.com/plugins/feed/assets/telemetry.gif?title=%E5%88%AB%E5%86%8D%E6%AD%BB%E7%A3%95%E5%9B%BA%E5%AE%9A%E5%AE%BD%E5%BA%A6%E4%BA%86%EF%BC%81%E6%88%91%E8%B8%A9%E4%BA%863%E6%AC%A1%E5%9D%91%E6%89%8D%E6%90%9E%E6%87%82%E7%9A%84%E5%93%8D%E5%BA%94%E5%BC%8F%E5%AE%B9%E5%99%A8%E2%80%9C%E8%88%92%E6%9C%8D%E5%AF%86%E7%A0%81%E2%80%9D&amp;url=/archives/xiang-ying-shi-rong-qi-kuan-du-she-ji-lu-ji" width="1" height="1" alt="" style="opacity:0;">你有没有过这种情况？ 熬夜写了个自认为超好看的网页，第二天用手机打开——文字挤得像被揉皱的纸团，图片卡在屏幕边缘快溢出来；电脑上倒还像模像样，可用户哪会只用电脑看你东西啊？ 先搞懂：为啥要给容器“松绑”？ 我刚开始学的时候，特喜欢给容器设固定宽度——比如1200px，觉得“这宽度够宽，电脑上看特大气]]></description><guid isPermaLink="false">/archives/xiang-ying-shi-rong-qi-kuan-du-she-ji-lu-ji</guid><dc:creator>星野集</dc:creator><category>笔记</category><category>CSS</category><pubDate>Sat, 18 Oct 2025 08:57:11 GMT</pubDate></item><item><title><![CDATA[关于CSS结构伪类的几点实践  ]]></title><link>https://www.xingyeji.com/archives/guan-yu-cssjie-gou-wei-lei-de-ji-dian-shi-jian</link><description><![CDATA[<img src="https://www.xingyeji.com/plugins/feed/assets/telemetry.gif?title=%E5%85%B3%E4%BA%8ECSS%E7%BB%93%E6%9E%84%E4%BC%AA%E7%B1%BB%E7%9A%84%E5%87%A0%E7%82%B9%E5%AE%9E%E8%B7%B5%20%20&amp;url=/archives/guan-yu-cssjie-gou-wei-lei-de-ji-dian-shi-jian" width="1" height="1" alt="" style="opacity:0;">最近在做项目中的文章列表页，遇到个挺有意思的小问题：想给列表的第一个项加个粗体突出，最后一个项加条下划线提示“更多内容”，一开始我居然傻乎乎地给每个&lt;li&gt;手动加了class="first"和class="last"。结果HTML里堆了一堆类名，同事瞥了眼屏幕说：“你咋不用结构伪类？明明不用加额外c]]></description><guid isPermaLink="false">/archives/guan-yu-cssjie-gou-wei-lei-de-ji-dian-shi-jian</guid><dc:creator>星野集</dc:creator><category>笔记</category><category>CSS</category><pubDate>Wed, 15 Oct 2025 04:53:11 GMT</pubDate></item><item><title><![CDATA[CSS Grid布局从入门到实战：二维布局的“瑞士军刀”与高效技巧 ]]></title><link>https://www.xingyeji.com/archives/css-grid-bu-ju-ru-men-er-wei-bu-ju</link><description><![CDATA[<img src="https://www.xingyeji.com/plugins/feed/assets/telemetry.gif?title=CSS%20Grid%E5%B8%83%E5%B1%80%E4%BB%8E%E5%85%A5%E9%97%A8%E5%88%B0%E5%AE%9E%E6%88%98%EF%BC%9A%E4%BA%8C%E7%BB%B4%E5%B8%83%E5%B1%80%E7%9A%84%E2%80%9C%E7%91%9E%E5%A3%AB%E5%86%9B%E5%88%80%E2%80%9D%E4%B8%8E%E9%AB%98%E6%95%88%E6%8A%80%E5%B7%A7%20&amp;url=/archives/css-grid-bu-ju-ru-men-er-wei-bu-ju" width="1" height="1" alt="" style="opacity:0;">前端开发里，“把页面元素排整齐”从来不是件简单事。 你可能用过float浮动（容易塌陷）、position定位（脱离文档流难管理），甚至刚学会Flexbox（擅长排成一条线），但遇到同时要管行和列的二维布局（比如卡片列表、导航栏+主内容+侧边栏），这些工具总像“缺了一条腿”。 这时候，CSS Gri]]></description><guid isPermaLink="false">/archives/css-grid-bu-ju-ru-men-er-wei-bu-ju</guid><dc:creator>星野集</dc:creator><category>笔记</category><category>CSS</category><pubDate>Thu, 9 Oct 2025 06:15:23 GMT</pubDate></item><item><title><![CDATA[CSS Flexbox布局入门：从零开始掌握弹性盒子模型]]></title><link>https://www.xingyeji.com/archives/css-flexbox-bu-ju-ru-men</link><description><![CDATA[<img src="https://www.xingyeji.com/plugins/feed/assets/telemetry.gif?title=CSS%20Flexbox%E5%B8%83%E5%B1%80%E5%85%A5%E9%97%A8%EF%BC%9A%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8B%E6%8E%8C%E6%8F%A1%E5%BC%B9%E6%80%A7%E7%9B%92%E5%AD%90%E6%A8%A1%E5%9E%8B&amp;url=/archives/css-flexbox-bu-ju-ru-men" width="1" height="1" alt="" style="opacity:0;">你有没有过这样的经历？ 想让导航栏里的链接均匀分布在容器两侧，试了float: left和text-align: right组合，结果链接挤成一团； 想做一张卡片列表，希望卡片自动换行且间距一致，用inline-block加margin调了半天，要么间距不对，要么换行后错位； 或者想让一个容器里的元]]></description><guid isPermaLink="false">/archives/css-flexbox-bu-ju-ru-men</guid><dc:creator>星野集</dc:creator><category>笔记</category><category>CSS</category><pubDate>Wed, 8 Oct 2025 14:11:17 GMT</pubDate></item><item><title><![CDATA[视觉视口与逻辑视口：前端开发者必须搞懂的屏幕适配核心概念]]></title><link>https://www.xingyeji.com/archives/shi-jue-shi-kou-yu-luo-ji-shi-kou-qian-duan-ping-mu-shi-pei</link><description><![CDATA[<img src="https://www.xingyeji.com/plugins/feed/assets/telemetry.gif?title=%E8%A7%86%E8%A7%89%E8%A7%86%E5%8F%A3%E4%B8%8E%E9%80%BB%E8%BE%91%E8%A7%86%E5%8F%A3%EF%BC%9A%E5%89%8D%E7%AB%AF%E5%BC%80%E5%8F%91%E8%80%85%E5%BF%85%E9%A1%BB%E6%90%9E%E6%87%82%E7%9A%84%E5%B1%8F%E5%B9%95%E9%80%82%E9%85%8D%E6%A0%B8%E5%BF%83%E6%A6%82%E5%BF%B5&amp;url=/archives/shi-jue-shi-kou-yu-luo-ji-shi-kou-qian-duan-ping-mu-shi-pei" width="1" height="1" alt="" style="opacity:0;">作为前端开发者，你是否遇到过这样的困惑：明明在代码里设置了页面宽度为375px，但在不同手机上显示效果却不一样？或者为什么同样的CSS媒体查询，在某些设备上触发时机总跟预期有偏差？这就要从移动端特有的视觉视口(Visual Viewport)和逻辑视口(Layout Viewport)说起。 一、先]]></description><guid isPermaLink="false">/archives/shi-jue-shi-kou-yu-luo-ji-shi-kou-qian-duan-ping-mu-shi-pei</guid><dc:creator>星野集</dc:creator><category>开发技巧</category><category>前端基础</category><pubDate>Sun, 5 Oct 2025 05:04:58 GMT</pubDate></item><item><title><![CDATA[CSS3核心特性-第9章-9.3-过渡效果（transition）]]></title><link>https://www.xingyeji.com/archives/css3-guo-du-xiao-guo-transition</link><description><![CDATA[<img src="https://www.xingyeji.com/plugins/feed/assets/telemetry.gif?title=CSS3%E6%A0%B8%E5%BF%83%E7%89%B9%E6%80%A7-%E7%AC%AC9%E7%AB%A0-9.3-%E8%BF%87%E6%B8%A1%E6%95%88%E6%9E%9C%EF%BC%88transition%EF%BC%89&amp;url=/archives/css3-guo-du-xiao-guo-transition" width="1" height="1" alt="" style="opacity:0;">一、学习目标 掌握过渡效果的核心语法及6个关键属性 理解过渡四要素（属性、时长、缓动函数、延迟）的作用 实现3种常见交互动效（颜色过渡、尺寸变换、位置移动） 区分过渡与动画的适用场景及性能优化技巧 二、概念讲解 过渡效果（transition）是CSS3引入的状态间平滑过渡技术，允许元素在不同状态（]]></description><guid isPermaLink="false">/archives/css3-guo-du-xiao-guo-transition</guid><dc:creator>星野集</dc:creator><category>HTML5+CSS3教程</category><category>CSS</category><pubDate>Wed, 24 Sep 2025 07:05:59 GMT</pubDate></item><item><title><![CDATA[CSS3核心特性-第9章-9.2-3D变换与透视]]></title><link>https://www.xingyeji.com/archives/css3-3d-bian-huan-yu-tou-shi</link><description><![CDATA[<img src="https://www.xingyeji.com/plugins/feed/assets/telemetry.gif?title=CSS3%E6%A0%B8%E5%BF%83%E7%89%B9%E6%80%A7-%E7%AC%AC9%E7%AB%A0-9.2-3D%E5%8F%98%E6%8D%A2%E4%B8%8E%E9%80%8F%E8%A7%86&amp;url=/archives/css3-3d-bian-huan-yu-tou-shi" width="1" height="1" alt="" style="opacity:0;">学习目标 理解3D变换的核心概念（透视、3D空间、变换原点） 掌握perspective属性的语法与取值规则 实现基础3D变换效果（旋转、平移、缩放） 掌握transform-style: preserve-3d的应用场景 能够开发简单的3D交互效果（如卡片翻转、立方体展示） 概念讲解 3D变换是C]]></description><guid isPermaLink="false">/archives/css3-3d-bian-huan-yu-tou-shi</guid><dc:creator>星野集</dc:creator><category>HTML5+CSS3教程</category><category>CSS</category><pubDate>Mon, 22 Sep 2025 14:39:29 GMT</pubDate></item><item><title><![CDATA[CSS Emmet写法指南：新手也能秒懂的高效样式代码技巧]]></title><link>https://www.xingyeji.com/archives/css-emmet-xie-fa-zhi-nan</link><description><![CDATA[<img src="https://www.xingyeji.com/plugins/feed/assets/telemetry.gif?title=CSS%20Emmet%E5%86%99%E6%B3%95%E6%8C%87%E5%8D%97%EF%BC%9A%E6%96%B0%E6%89%8B%E4%B9%9F%E8%83%BD%E7%A7%92%E6%87%82%E7%9A%84%E9%AB%98%E6%95%88%E6%A0%B7%E5%BC%8F%E4%BB%A3%E7%A0%81%E6%8A%80%E5%B7%A7&amp;url=/archives/css-emmet-xie-fa-zhi-nan" width="1" height="1" alt="" style="opacity:0;">前面我们聊完了HTML部分的Emmet写法，接下来重点说说CSS的Emmet写法——它同样能帮你省去敲重复属性的力气，尤其是写样式时经常要重复输入的margin、padding、color等属性，用Emmet几秒钟就能搞定。 CSS的Emmet语法和HTML不太一样，它更像是一套「属性缩写规则」，掌]]></description><guid isPermaLink="false">/archives/css-emmet-xie-fa-zhi-nan</guid><dc:creator>星野集</dc:creator><category>笔记</category><category>开发技巧</category><category>CSS</category><pubDate>Sat, 20 Sep 2025 14:04:43 GMT</pubDate></item></channel></rss>