摘要:每隔幾個月就會出現一篇文章表明并不是真正的編程語言。你無需擔心因添加了一行不支持的代碼而出錯,解析器會跳過它不支持的屬性。當遇到錯誤時,解析器會中斷解析并且拋出錯誤信息,而解析器會忽略這些錯誤并繼續解析。
每隔幾個月就會出現一篇文章表明:CSS并不是真正的編程語言。以編程語言的標準來說,CSS過于困難。使用這門語言會很有創造性:
人們對CSS有一些強烈的情愫。— Dave Rupert (@davatron5000) [September 18, 2017]
事實確實如此,CSS不同于傳統的編程,且具有缺陷,同任何標準化編程語言相比,使用起來都更為困難。這是由于CSS被設計為一種描繪界面的方式,而不是以編程形式實現該界面,例如canvas的API。CSS的設計初衷就不同于傳統編程語言。
CSS為用戶上網時遇到的一些復雜且未知的東西創建界面,這個設計初衷是很棒的。作為一名CSS開發者,你相信用戶代理(大部分情況下指的是瀏覽器)會表現正確的行為。你無法控制CSS發生的時機,但同時你也無需擔心性能、渲染時間和響應的具體細節,因為這些細節是由瀏覽器開發者和瀏覽器所處操作系統決定的。不過很棒的一點是,CSS允許你在其應用的地方修改這些重要的細節。如果你使用JavaScript來創建界面或動畫,你不僅需要做更多深入細致的控制,還要確保一切都能正常工作,否則可能會阻塞頁面的正常顯示。使用CSS就意味著放棄控制,而去花更多的時間創建友好的響應式交互界面。用戶可能會搞亂你的界面設置,但CSS可以為你規避這種情況。
使用CSS開發不同于傳統模式,并不需要循環、條件和變量。但CSS正朝著這個方向發展,Sass作為CSS的擴展語言,引入了變量,為CSS未來的發展奠定了基礎。但CSS最需要的不是語法,而是你要清楚使用CSS所描繪的界面是什么。其次,如何確保你使用CSS編寫的界面是足夠靈活的,以至于用戶無法觸發頁面的錯誤也不會無法訪問頁面。當你理解了HTML并使用CSS來控制它的樣式時,你能夠減少很大的代碼量。
你的用戶們的忠誠度依賴于所在的技術平臺,如果你不打算創建友好的交互來提升用戶體驗,增加用戶的留存度,CSS可能并不適合你。CSS被設計為一種“寬容“的語言,當你的一些代碼無法起作用時,CSS也不會報錯。因此,漸進增強是很棒的設計。你無需擔心因添加了一行不支持的代碼而出錯,解析器會跳過它不支持的屬性。當遇到錯誤時,JS解析器會中斷解析并且拋出錯誤信息,而CSS解析器會忽略這些錯誤并繼續解析。這對于想要知道錯誤信息的開發者來說會很奇怪,但是卻讓你從需要使用if來包含各種情況、兼容所有可能使用的瀏覽器這一狀況下解脫出來。如何對按鈕使用漸變效果?首先,定義一個背景色,然后在下一行設置背景為漸變。如果瀏覽器不支持漸變效果,它依舊會渲染出一個正常的按鈕,只不過背景不是漸變而已。在這個過程中,你根本無須擔心瀏覽器是否支持漸變。
由于對CSS的設計目的不了解而產生了錯誤認知,才導致出現了很多“CSS不是真正的編程”的觀點。如果你想要完全控制一切,比如界面、甚至精細到像素的話,請不要使用CSS。相反,如果你想要構建一個包羅廣泛、多種多樣的頁面,CSS是個很好的工具。編寫CSS需要站在用戶的角度考慮,設計擁有良好交互的頁面,提升用戶體驗,但這并不是說你把一個Photoshop生成的圖片放到頁面就好了。使用CSS構建頁面需要不同于后端語言的技術棧,其次,作為維護者、編寫者的心態也要發生轉變。
不管怎么說,輕視CSS開發者、將他們視為非純正開發者,這種傲慢的想法略顯荒謬。尤其是在你甚至都沒花時間了解CSS的設計目的是什么,以及它目前驚人的發展速度。
從另一方面來說,CSS本不是也不應該是任何問題的解決方式。例如,你可以創建帶有陰影的像素,但同時也會對瀏覽器渲染引擎帶來渲染壓力。
對我來說,CSS就是Web的一部分;對有些人來說,CSS的語法顯得很奇怪,以至于讓他們覺得是另一種編程語言。不過這些年來,隨著CSS的發展,它的價值毋庸置疑。在未來很長一段時間,CSS應該也不會消失。因此,如果你不喜歡使用CSS,那就和會使用的人合作開發網頁。
與其討論“CSS是否有缺陷,需要被替代”的問題,不如以一種積極健康且不同于以往的角度討論CSS:
CSS可以做什么,它有什么不足
有哪些過去需要其他技術才能實現的,而現在CSS就可以做到的事情,以及如何應用
如何編寫可維護的CSS
你能夠做什么,來使CSS開發者的開發過程更簡單、容易?
我們使用哪些CSS hack,為什么不應該再用它們
我們可以做什么來讓CSS這門語言變得更好、更豐富?
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/114480.html
摘要:每隔幾個月就會出現一篇文章表明并不是真正的編程語言。你無需擔心因添加了一行不支持的代碼而出錯,解析器會跳過它不支持的屬性。當遇到錯誤時,解析器會中斷解析并且拋出錯誤信息,而解析器會忽略這些錯誤并繼續解析。 每隔幾個月就會出現一篇文章表明:CSS并不是真正的編程語言。以編程語言的標準來說,CSS過于困難。使用這門語言會很有創造性: 人們對CSS有一些強烈的情愫。— Dave Rupert...
摘要:前端技術日新月異,在你鞏固底層技能的同時,別忘了還要跟上前沿技術的發展步伐。你可以從谷歌的博客中了解更多相關信息。令我驚訝的是,谷歌所有地方在非常簡單的頁面上都沒有搜索欄。快速發布預覽零配置打包工具。快速啟動新的工具。 Web 前端技術日新月異,在你鞏固底層技能的同時,別忘了還要跟上前沿技術的發展步伐。 本期刊專注于 Web 前端前沿技術,收集的內容來自國外各大前端技術周刊,這里把值得...
摘要:前端技術日新月異,在你鞏固底層技能的同時,別忘了還要跟上前沿技術的發展步伐。你可以從谷歌的博客中了解更多相關信息。令我驚訝的是,谷歌所有地方在非常簡單的頁面上都沒有搜索欄。快速發布預覽零配置打包工具。快速啟動新的工具。 Web 前端技術日新月異,在你鞏固底層技能的同時,別忘了還要跟上前沿技術的發展步伐。 本期刊專注于 Web 前端前沿技術,收集的內容來自國外各大前端技術周刊,這里把值得...
摘要:設計模式入坑介紹設計模式編寫易于維護的代碼。設計模式的開創者是一位土木工程師。創建型設計模式處理對象的創建。行為設計模式系統中的對象的通信迭代器模式,中介者模式,觀察者模式,訪問者模式。 JavaScript設計模式入坑 介紹 設計模式編寫易于維護的代碼。 設計模式的開創者是一位土木工程師。Σ( ° △ °|||)︴,寫代碼就是蓋房子。 模式 模式一種可以復用的解決方案。解決軟件設計中...
摘要:如果沒有學習過計算機科學的程序員,當我們在處理一些問題時,比較熟悉的數據結構就是數組,數組無疑是一個很好的選擇。 showImg(https://segmentfault.com/img/bVTSjt?w=400&h=300); 1、常見 CSS 布局方式詳見: 一些常見的 CSS 布局方式梳理,涉及 Flex 布局、Grid 布局、圣杯布局、雙飛翼布局等。http://cherryb...
閱讀 1266·2021-10-14 09:50
閱讀 1567·2019-08-30 15:54
閱讀 1023·2019-08-30 11:22
閱讀 2916·2019-08-30 10:50
閱讀 1801·2019-08-29 18:39
閱讀 3050·2019-08-29 13:07
閱讀 2079·2019-08-28 17:54
閱讀 751·2019-08-26 17:44