1<!DOCTYPE html><html lang="zh-tw" class="bg-neutral-200 text-neutral-900 *:text-pretty dark:bg-neutral-700 dark:text-neutral-200 [&_:is(h1,h2,h3,h4,h5,h6)]:my-6 [&_:is(h1,h2,h3,h4,h5,h6)]:text-balance [&_h1]:text-5xl/16 [&_h2]:text-4xl/12 [&_h3]:text-3xl/8 [&_h4]:text-2xl [&_h5]:text-xl [&_h6]:text-lg [&_hr]:my-6 [&_:is(table,th,td)]:border [&_:is(table,th,td)]:border-neutral-900 [&_:is(table,th,td)]:p-2 dark:[&_:is(table,th,td)]:border-neutral-200 [&_table]:w-full [&_del]:mx-0.5 [&_del]:text-neutral-900/70 [&_del]:line-through dark:[&_del]:dark:text-neutral-200/75"> <head><!-- Global Metadata --><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/favicon.svg" type="image/svg+xml"><link rel="sitemap" href="/sitemap-index.xml"><meta name="generator" content="Astro v5.17.2"><!-- Primary Meta Tags --><title>æ®éæçµ 2.5</title><meta name="title" content="æ®éæçµ 2.5"><meta name="description" content="鿝ä¸åæçµè½è·å端工ç¨å¸«çæè¡é¨è½æ ¼"><!-- Open Graph / Facebook --><meta property="og:type" content="website"><meta property="og:url" content="https://tzynwang.github.io/"><meta property="og:title" content="æ®éæçµ 2.5"><meta property="og:description" content="鿝ä¸åæçµè½è·å端工ç¨å¸«çæè¡é¨è½æ ¼"><meta property="og:image" content="https://tzynwang.github.io/alexander-andrews-mEdKuPYJe1I.jpg"><!-- Twitter --><meta property="twitter:card" content="summary_large_image"><meta property="twitter:url" content="https://tzynwang.github.io/"><meta property="twitter:title" content="æ®éæçµ 2.5"><meta property="twitter:description" content="鿝ä¸åæçµè½è·å端工ç¨å¸«çæè¡é¨è½æ ¼"><meta property="twitter:image" content="https://tzynwang.github.io/alexander-andrews-mEdKuPYJe1I.jpg"><!-- GSC verification --><meta name="google-site-verification" content="VEtprY6Mg0dYcw0VAEYAu_Btg_JvCVg1tl_gKrS4CNI"><!-- Font --><link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link href="https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@400;700&family=Noto+Sans:wght@400;700&display=swap" rel="stylesheet"><meta name="astro-view-transitions-enabled" content="true"><meta name="astro-view-transitions-fallback" content="animate">
1<script type="module" src="/_astro/ClientRouter.astro_astro_type_script_index_0_lang.CDGfc0hd.js"></script>
1<!-- Google Tag Manager -->
1<script>(function(){const ga4Id = "G-6QC9CKHCTY"; 2 3 (function (w, d, s, l, i) { 4 w[l] = w[l] || []; 5 w[l].push({ "gtm.start": new Date().getTime(), event: "gtm.js" }); 6 var f = d.getElementsByTagName(s)[0], 7 j = d.createElement(s), 8 dl = l != "dataLayer" ? "&l=" + l : ""; 9 j.async = true; 10 j.src = "https://www.googletagmanager.com/gtm.js?id=" + i + dl; 11 f.parentNode.insertBefore(j, f); 12 })(window, document, "script", "dataLayer", ga4Id); 13 })();</script>
13<!-- Google tag (gtag.js) -->
13<script async src="https://www.googletagmanager.com/gtag/js?id=GTM-KM9SGJLK">(function(){const gTagId = "GTM-KM9SGJLK"; 14})();</script>
14<script>(function(){const ga4Id = "G-6QC9CKHCTY"; 15 16 window.dataLayer = window.dataLayer || []; 17 function gtag() { 18 dataLayer.push(arguments); 19 } 20 gtag("js", new Date()); 21 gtag("config", ga4Id); 22 })();</script>
22<link rel="stylesheet" href="/_astro/_path_.C-rzvVe6.css"></head> <body> <section class="m-6 sm:mx-auto sm:max-w-[60ch]"> <h1>æ®éæçµ 2.5</h1> <nav class="flex items-center gap-4"> <a href="/" class="text-teal-800 dark:text-teal-300">é¦é </a> <a href="/archive" class="text-teal-800 dark:text-teal-300">å
¨æç« æ¸æª</a> <a href="/tag" class="text-teal-800 dark:text-teal-300">以æ¨ç±¤æª¢è¦</a> <a href="/rss.xml" class="text-teal-800 dark:text-teal-300">RSS</a> </nav> </section> <main class="m-6 sm:mx-auto sm:max-w-[60ch]"> <div class="space-y-8"> <section class="space-y-2"> <img src="/2025/css-grid-minmax/伸縮èªå¦çæ.jpeg" alt="" class="block aspect-video w-full object-cover"> <h2 class="relative text-teal-800 dark:text-teal-300"> 以 minmax() ä¾å¯¦ä½ä¼¸ç¸®èªå¦ç容å¨<a href="2025/css-grid-minmax" class="GA4-read-post absolute inset-0"></a> </h2> <time class="block">2025-11-09 14:17</time> <nav class="flex items-center gap-2"> <a class="relative inline-flex items-center bg-teal-800 px-2 py-1 text-sm text-neutral-50 transition-colors dark:bg-teal-300 dark:text-neutral-800" href="/tag/CSS"> CSS </a> </nav> <p>å¦æä½ éè¦æ ¹æå
§å®¹å¤å¯¡ä¾åæ
調æ´ä¸åå
ä»¶ç尺寸ï¼ä½éåå
ä»¶åæä¸åå¿
é éµå®çæå¤§å°ºå¯¸éå¶ï¼é£ minmax() æè©²ææ¯ä½ ç好æåãèå¦æä½ ç䏿åé¢é£å¥è©±å°åºå¨å
¬å°ï¼é£æ¡è¿é»ééç¯æç« çä¸ä¸ç¯ä¾ï¼å¤§æ¦å°±ææäº ð</p> </section><section class="space-y-2"> <img src="/2025/book-the-rules-of-programming/å±è.png" alt="" class="block aspect-video w-full object-cover"> <h2 class="relative text-teal-800 dark:text-teal-300"> ãç¨å¼è¨è¨å®åãââç°¡å®å°±æ¯æå¥½<a href="2025/book-the-rules-of-programming" class="GA4-read-post absolute inset-0"></a> </h2> <time class="block">2025-10-19 15:38</time> <nav class="flex items-center gap-2"> <a class="relative inline-flex items-center bg-teal-800 px-2 py-1 text-sm text-neutral-50 transition-colors dark:bg-teal-300 dark:text-neutral-800" href="/tag/é±è®çè¨"> é±è®çè¨ </a> </nav> <p>èèé³¥å¸å®çéç¼å¸¸èè®æ¬ãä¸å¥è©±ç¸½çµæ´æ¬æ¸å°±æ¯ã妿å®ç°¡å®ã好æï¼æ²æä»»ä½ bug ä¸éµç
§åéè¦ç¯ï¼é£éå°±æ¯å¥½ç¨å¼ç¢¼ããå¦æä½ æ³ç¥éçºä»éº¼æ¯éäºæ¯è£½é ç¾å¥½ç¨å¼ç¢¼çå¿
è¦æåï¼é£æ¡è¿é»ééç¯æç« ç¹¼çºè®ä¸å»ã</p> </section><section class="space-y-2"> <img src="/2025/js-copy-rich-content/spider-man-point-each-other.jpg" alt="" class="block aspect-video w-full object-cover"> <h2 class="relative text-teal-800 dark:text-teal-300"> å¦ä½è¤è£½å¸¶æ ¼å¼çæåï¼rich content, rich text copyï¼<a href="2025/js-copy-rich-content" class="GA4-read-post absolute inset-0"></a> </h2> <time class="block">2025-09-07 18:17</time> <nav class="flex items-center gap-2"> <a class="relative inline-flex items-center bg-teal-800 px-2 py-1 text-sm text-neutral-50 transition-colors dark:bg-teal-300 dark:text-neutral-800" href="/tag/JavaScript"> JavaScript </a> </nav> <p>çµæ¥µæ¶äººå
ï¼å¨ä½¿ç¨ navigator.clipboard.write è¤è£½ç¶²é ä¸çæåï¼éå¸¶æ ¼å¼ï¼æï¼è¦åææä¾ text/html å text/plain åæ
çå
§å®¹ï¼ä¸ç¶ç¡æ³å°ç´æå編輯å¨é²è¡è²¼ä¸ã</p> </section><section class="space-y-2"> <img src="/2025/css-tab-switch-anchor-position/armands-brants-BX8w_quWj_c-unsplash.jpg" alt="" class="block aspect-video w-full object-cover"> <h2 class="relative text-teal-800 dark:text-teal-300"> ç¨ CSS anchor function å¯¦ç¾ Tab å
ä»¶æ»åææ<a href="2025/css-tab-switch-anchor-position" class="GA4-read-post absolute inset-0"></a> </h2> <time class="block">2025-08-31 10:13</time> <nav class="flex items-center gap-2"> <a class="relative inline-flex items-center bg-teal-800 px-2 py-1 text-sm text-neutral-50 transition-colors dark:bg-teal-300 dark:text-neutral-800" href="/tag/CSS"> CSS </a> </nav> <p>åªé»ï¼ä½ å¯ä»¥å°å¯«å¾å¤ç¨å¼ç¢¼ï¼ç¼ºé»ï¼ç«çé䏿¯æ´</p> </section><section class="space-y-2"> <img src="/2025/remix-google-analytics/it-works-why.jpg" alt="" class="block aspect-video w-full object-cover"> <h2 class="relative text-teal-800 dark:text-teal-300"> å¦ä½æåï¼å¨ React Router v7 Framework 模å¼ä¸ï¼è¨å® Google Analytics (gtag)<a href="2025/remix-google-analytics" class="GA4-read-post absolute inset-0"></a> </h2> <time class="block">2025-08-17 10:32</time> <nav class="flex items-center gap-2"> <a class="relative inline-flex items-center bg-teal-800 px-2 py-1 text-sm text-neutral-50 transition-colors dark:bg-teal-300 dark:text-neutral-800" href="/tag/React Router v7"> React Router v7 </a><a class="relative inline-flex items-center bg-teal-800 px-2 py-1 text-sm text-neutral-50 transition-colors dark:bg-teal-300 dark:text-neutral-800" href="/tag/Remix"> Remix </a> </nav> <p>
22æ©é»æ³å°ç¨ import.meta.env 帶å
¥ç°å¢è®æ¸ï¼äºæ
æè©²å°±ä¸æé£éº¼è¤éäºå§ ð¶âð«ï¸</p> </section><section class="space-y-2"> <img src="/2025/css-grid-template-columns-container-max-width/let-me-in.jpg" alt="" class="block aspect-video w-full object-cover"> <h2 class="relative text-teal-800 dark:text-teal-300"> 以 grid-template-columns ä¾é嶿大容å¨å¯¬<a href="2025/css-grid-template-columns-container-max-width" class="GA4-read-post absolute inset-0"></a> </h2> <time class="block">2025-07-29 18:45</time> <nav class="flex items-center gap-2"> <a class="relative inline-flex items-center bg-teal-800 px-2 py-1 text-sm text-neutral-50 transition-colors dark:bg-teal-300 dark:text-neutral-800" href="/tag/CSS"> CSS </a> </nav> <p>å¨éè¦åæèç overflow å filter drop-shadow æï¼å¹³å¸¸æ
£ç¨ç max-width é
margin-inline ç寫æ³å¯è½æè®é°å½±â¯â¯çèµ·ä¾æé»åé¡ ð</p> </section><section class="space-y-2"> <img src="/2025/css-transform-order-matters/Las_Meninas.jpg" alt="" class="block aspect-video w-full object-cover"> <h2 class="relative text-teal-800 dark:text-teal-300"> è®å½¢çç§©åºï¼CSS transform order mattersï¼<a href="2025/css-transform-order-matters" class="GA4-read-post absolute inset-0"></a> </h2> <time class="block">2025-07-05 18:40</time> <nav class="flex items-center gap-2"> <a class="relative inline-flex items-center bg-teal-800 px-2 py-1 text-sm text-neutral-50 transition-colors dark:bg-teal-300 dark:text-neutral-800" href="/tag/CSS"> CSS </a> </nav> <p>ä½ ç¥éåï¼CSS `transform` çé åºæå½±é¿å
ä»¶çè®å½¢çµæã</p> </section><section class="space-y-2"> <img src="/2025/book-being-geek/gerald-schombs-BqySllTmBhk-unsplash.jpg" alt="" class="block aspect-video w-full object-cover"> <h2 class="relative text-teal-800 dark:text-teal-300"> ä½ ç¾å¨å¨åä»éº¼ï¼ä¸è¦æ¾èå£ââãæèº«æªåãæ¸æ<a href="2025/book-being-geek" class="GA4-read-post absolute inset-0"></a> </h2> <time class="block">2025-06-22 07:43</time> <nav class="flex items-center gap-2"> <a class="relative inline-flex items-center bg-teal-800 px-2 py-1 text-sm text-neutral-50 transition-colors dark:bg-teal-300 dark:text-neutral-800" href="/tag/é±è®çè¨"> é±è®çè¨ </a> </nav> <p>éç¶æ¯ 15 å¹´åçæ¸äºï¼ä½æäºå
§å®¹å°ç¾ä»£å·¥ç¨å¸«éæ¯æç¶é æ£åçææã總ä¹å
è¨ä¸ä¾æéèªå·±ä¸è¦éå¾å¤ªå®é¸ã</p> </section><section class="space-y-2"> <img src="/2025/writing-for-developers-how-to-write/妳æä¸æè§ç¾è¦çæ¯ä»éº¼å.png" alt="" class="block aspect-video w-full object-cover"> <h2 class="relative text-teal-800 dark:text-teal-300"> æè©²æéº¼å¯«ï¼ââ"Writing for Developers" é±è®çè¨ï¼å¯«é£äºè®è
æ³ççæ±è¥¿<a href="2025/writing-for-developers-how-to-write" class="GA4-read-post absolute inset-0"></a> </h2> <time class="block">2025-06-15 08:24</time> <nav class="flex items-center gap-2"> <a class="relative inline-flex items-center bg-teal-800 px-2 py-1 text-sm text-neutral-50 transition-colors dark:bg-teal-300 dark:text-neutral-800" href="/tag/é±è®çè¨"> é±è®çè¨ </a><a class="relative inline-flex items-center bg-teal-800 px-2 py-1 text-sm text-neutral-50 transition-colors dark:bg-teal-300 dark:text-neutral-800" href="/tag/鿼坫ä½éä»¶äº"> 鿼坫ä½éä»¶äº </a> </nav> <p>ä½ å¯ä»¥æéç¯æç« è¦çº 2024 å¹´çå¯«ä½ SOP ä¸ä¸ç¯ remake çãé¤äºéæ¼ãå¦ä½å¯«ãçç²¾è¯åé¡§ä¹å¤ï¼ä¹è¿½å æ¶é "Writing for Developers" 䏿¸çãå¦ä½å¯«åºåæ¡è¿æç« ãç坫使巧ãèå¦æä½ ççé£è®å®éç¯æç« çæé齿²æï¼é£å£ç¸®å°æ¥µè´çæ¶äººå
å°±æ¯ââå¨å¯«ä½æä»¥ã滿足è®è
çéæ±ãçºçµæ¥µç®æ¨ï¼ä¸¦ç¢ºä¿è®è
è½ç¼ç¾æç« ð¤ï¸</p> </section><section class="space-y-2"> <img src="/2025/writing-for-developers-what-to-write/æè¨è®æéºå¿é£åç¾¨åæ¨çæå§.jpg" alt="" class="block aspect-video w-full object-cover"> <h2 class="relative text-teal-800 dark:text-teal-300"> æè©²å¯«ä»éº¼ï¼ââ"Writing for Developers"
22 é±è®çè¨ï¼æ¥å¸¸ç忍åæ<a href="2025/writing-for-developers-what-to-write" class="GA4-read-post absolute inset-0"></a> </h2> <time class="block">2025-04-22 19:37</time> <nav class="flex items-center gap-2"> <a class="relative inline-flex items-center bg-teal-800 px-2 py-1 text-sm text-neutral-50 transition-colors dark:bg-teal-300 dark:text-neutral-800" href="/tag/é±è®çè¨"> é±è®çè¨ </a><a class="relative inline-flex items-center bg-teal-800 px-2 py-1 text-sm text-neutral-50 transition-colors dark:bg-teal-300 dark:text-neutral-800" href="/tag/鿼坫ä½éä»¶äº"> 鿼坫ä½éä»¶äº </a> </nav> <p>éç¯æ¯æå¨çå® "Writing for Developers" å¾ï¼æ´çåºãä»éº¼å¯ä»¥æçºæè¡å¯«ä½é¡æãçç¸éçè¨ãä¸è«æ¯åéå§å¯«ä½çæ°æï¼ææ¯æ³è®èªå·±çæè¡æç« è½åæ¡è¿çæ·æ°å·¥ç¨å¸«ï¼æè©²é½è½å¾éç¯çè¨è£¡æå°ä¸äºéæå§ ð</p> </section> </div> <footer class="p-8 text-center"> 23Tzu Yin (Charlie) ð¦ Made in Taiwan 24</footer> </main> <!-- Google Tag Manager (noscript) --> <iframe src="https://www.googletagmanager.com/ns.html?id=GTM-KM9SGJLK" height="0" width="0" style="display:none;visibility:hidden"></iframe> <!-- End Google Tag Manager (noscript) --> </body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.