目錄
問題
? 收穫
在本地重現問題
解決問題
回顧
永不止步
首頁 web前端 css教學 我通過在開源項目中修復一行CSS所學到的知識

我通過在開源項目中修復一行CSS所學到的知識

Apr 03, 2025 am 10:52 AM

What I Learned by Fixing One Line of CSS in an Open Source Project

在iPhone上瀏覽Svelte文檔時,我發現了一個明顯的UI錯誤。 REPL旋鈕的缺口完全不對勁。我一直想為開源項目做貢獻,我認為這是一個快速簡單的修復。事實證明,它不僅僅是更改一行CSS代碼那麼簡單。

複製、調試、設置本地環境既有趣、又困難,而且意義重大。

問題

我打開了瀏覽器開發者工具,以為會在手機視圖中看到同樣的問題。但是,錯誤消失了。現在這是一個非常棘手的CSS問題。

? 收穫

如果您在iOS上使用Chrome作為瀏覽器,您仍然使用的是Safari的渲染引擎。摘自維基百科:

Chrome使用iOS WebKit——這是Apple為其Safari瀏覽器開發的自己的移動渲染引擎和組件——因此它無法使用Google自己的V8 JavaScript引擎。

caniuse也對此進行了佐證,它在iPS Safari上提供了以下說明:

現在很清楚為什麼問題在我的機器上沒有出現,但在我的手機上卻出現了。不同的渲染引擎!

在本地重現問題

我下載了項目並在本地運行。我通過在模擬器以及我的實際iPhone上運行本地代碼來確認它仍然是一個問題。 macOS上的Safari提供了一種簡單的方法來打開每個實例的開發者工具。

這提供了與在瀏覽器中一樣的控制台訪問權限,但適用於iOS Safari。我不撒謊,Apple的開發者體驗非常棒(看到我做了什麼嗎??)。

我現在能夠在本地重現這個問題了。

? 收穫

在下載Svelte倉庫並查看了一些代碼後,我注意到UI和SVG是通過名為@sveltejs/site-kit的包引入的。很好,現在我需要我的site kit本地版本被拉入svelte/site,這樣我才能看到更改並調試問題。

我需要將Svelte的package.json中的node_modules指向我的site-kit本地副本。這聽起來像是一個符號鏈接。在查閱文檔沒有太多結果後,我在谷歌上搜索,偶然發現了npm-link。這讓我看到了我在做什麼!

我現在可以對site-kit進行本地更改,並看到它們反映在Svelte項目中。

解決問題

說真的,只需要更改一行代碼:

 <code>border: transparent;</code>
登入後複製

但是找到應該放置這行代碼的位置並不像你想像的那麼簡單。項目的源映射還有一些粗糙的地方,它顯示這個CSS來自Nav.svelte組件,而實際上它來自另一個文件。這將是為項目做貢獻的另一種好方法!

然後你四處搜索並了解到這一點正在被處理,你也會更多地了解它是如何完成的。現在所有東西在移動端和桌面端看起來都很棒。

回顧

最初只是一個簡單的單行代碼更改,卻變成了一段旅程。我不得不:

  • 運行項目和組件倉庫
  • 了解系統鏈接
  • 為site-kit的鏈接貢獻文檔
  • 了解不同的瀏覽器渲染引擎
  • 了解如何模擬iOS Safari瀏覽器
  • 了解如何訪問其調試器
  • 在源映射無法正常工作時找到問題
  • (最終)修復問題

自己動手時,你通常不會處理這樣的問題,或者需要構建一個需要建立心智模型並學習的大型複雜系統。你無法向維護者學習。最重要的是,你不會看到構建流行的技術產品所付出的所有努力。

當我向CSS-Tricks提交這個想法時,Chris說他最近也遇到了類似的情況。艱難的學習是持久的學習。擁抱掙扎。

永不止步

我從Svelte項目中獲取了另一個問題,現在我正在學習CSSStyleSheet,因為還有一個問題(我認為),關於Safari如何處理stylemanager.ts中的關鍵幀動畫。學習就這樣繼續沿著我日常工作中從未走過的道路前進。

當某些東西崩潰時,享受學習系統的過程。你將獲得寶貴的見解,了解為什麼該事物崩潰以及可以採取哪些措施來修復它。這是為開源項目做貢獻的巨大好處之一,也是我鼓勵你這樣做的原因。

以上是我通過在開源項目中修復一行CSS所學到的知識的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1655
14
CakePHP 教程
1413
52
Laravel 教程
1306
25
PHP教程
1252
29
C# 教程
1226
24
Google字體可變字體 Google字體可變字體 Apr 09, 2025 am 10:42 AM

我看到Google字體推出了新設計(Tweet)。與上一次大型重新設計相比,這感覺更加迭代。我幾乎無法分辨出區別

如何使用HTML,CSS和JavaScript創建動畫倒計時計時器 如何使用HTML,CSS和JavaScript創建動畫倒計時計時器 Apr 11, 2025 am 11:29 AM

您是否曾經在項目上需要一個倒計時計時器?對於這樣的東西,可以自然訪問插件,但實際上更多

HTML數據屬性指南 HTML數據屬性指南 Apr 11, 2025 am 11:50 AM

您想了解的有關HTML,CSS和JavaScript中數據屬性的所有信息。

如何通過CSS選擇第一個類名為item的子元素? 如何通過CSS選擇第一個類名為item的子元素? Apr 05, 2025 pm 11:24 PM

在元素個數不固定的情況下如何通過CSS選擇第一個指定類名的子元素在處理HTML結構時,常常會遇到元素個數不�...

為什麼Flex佈局中的紫色斜線區域會被誤認為是'溢出空間”? 為什麼Flex佈局中的紫色斜線區域會被誤認為是'溢出空間”? Apr 05, 2025 pm 05:51 PM

關於Flex佈局中紫色斜線區域的疑問在使用Flex佈局時,你可能會遇到一些令人困惑的現象,比如在開發者工具(d...

使Sass更快的概念證明 使Sass更快的概念證明 Apr 16, 2025 am 10:38 AM

在一個新項目開始時,Sass彙編發生在眼睛的眨眼中。感覺很棒,尤其是當它與browsersync配對時,它重新加載

在前端開發中,如何使用CSS和JavaScript實現類似Windows 10設置界面的探照燈效果? 在前端開發中,如何使用CSS和JavaScript實現類似Windows 10設置界面的探照燈效果? Apr 05, 2025 pm 10:21 PM

在前端開發中如何實現類似Windows...

我們如何創建一個在SVG中生成格子呢模式的靜態站點 我們如何創建一個在SVG中生成格子呢模式的靜態站點 Apr 09, 2025 am 11:29 AM

格子呢是一塊圖案布,通常與蘇格蘭有關,尤其是他們時尚的蘇格蘭語。在Tar​​tanify.com上,我們收集了5,000多個格子呢

See all articles