哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

2021必修 首門CSS架構(gòu)系統(tǒng)精講 理論+實(shí)戰(zhàn)玩轉(zhuǎn)蘑菇街

撒水 ? 來源:jf_82580774 ? 作者:jf_82580774 ? 2026-04-01 15:51 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

從個(gè)人觀點(diǎn)看CSS架構(gòu)與組件庫:電商UI體系背后的“隱形腳手架”

做前端這些年,我見過太多項(xiàng)目在CSS上栽跟頭。一開始寫得很爽,隨著業(yè)務(wù)膨脹,樣式文件越來越臃腫,改一個(gè)按鈕的樣式牽扯出十幾個(gè)頁面的樣式錯(cuò)亂,不敢刪、不敢改、不敢重構(gòu)。這種“CSS債務(wù)”的累積速度,往往比JavaScript債務(wù)快得多。

當(dāng)我開始深入思考CSS架構(gòu),尤其是為電商這類復(fù)雜業(yè)務(wù)搭建組件庫時(shí),才意識到:CSS不是“隨便寫寫就能跑”的東西,它需要一套完整的設(shè)計(jì)體系作為支撐。就像蓋房子不能沒有腳手架一樣,電商UI體系背后,也需要一套隱形的CSS架構(gòu)來兜底。

CSS架構(gòu)的本質(zhì):管理“復(fù)雜度”與“熵”

電商業(yè)務(wù)的UI復(fù)雜度,在我接觸過的所有品類中算是頂級的。商品卡片、價(jià)格展示、促銷標(biāo)簽、購物車彈窗、多級分類菜單——每一個(gè)看似簡單的組件,背后都有大量的狀態(tài)變體和業(yè)務(wù)邏輯。

如果沒有架構(gòu),CSS會迅速陷入“熵增”。今天A頁面寫一個(gè).price,明天B頁面寫一個(gè).price,后天需求變了要改價(jià)格樣式,你會發(fā)現(xiàn)改了A頁面,B頁面崩了;改了B頁面,C頁面又出問題了。這種全局命名空間的污染,是傳統(tǒng)CSS最大的痛點(diǎn)。

CSS架構(gòu)的核心價(jià)值,就是對抗這種“熵增”。它通過一套規(guī)則,把散落在各個(gè)頁面的樣式約束起來,讓每個(gè)人在寫樣式時(shí)都走在同一條軌道上。不是限制創(chuàng)造力,而是把創(chuàng)造力用在正確的地方。

我經(jīng)歷過從“沒有任何架構(gòu)”到“引入完整CSS架構(gòu)”的轉(zhuǎn)變,最直觀的感受是:重構(gòu)的信心回來了。以前改樣式是戰(zhàn)戰(zhàn)兢兢的“拆彈”,現(xiàn)在改樣式是按部就班的“施工”。這種安全感,是任何技術(shù)選型都無法替代的。

BEM與組件化:讓CSS“有跡可循”

在眾多CSS方法論中,BEM是我實(shí)踐下來最適配組件庫的。它通過Block、Element、Modifier的命名規(guī)范,把CSS的作用域收窄到組件級別,同時(shí)保持了語義的可讀性。

在電商組件庫里,BEM的價(jià)值體現(xiàn)得淋漓盡致。比如一個(gè)商品卡片組件,它可能有多種狀態(tài):默認(rèn)態(tài)、促銷態(tài)、售罄態(tài)、選中態(tài)。用BEM的Modifier,你可以清晰地表達(dá)這些變體,而不用擔(dān)心樣式?jīng)_突。團(tuán)隊(duì)里的任何一個(gè)人看到class名,都能立刻知道這個(gè)樣式屬于哪個(gè)組件、作用在哪個(gè)元素上、代表什么狀態(tài)。

配合組件化的開發(fā)模式,CSS和JS的邊界也變得清晰。每個(gè)組件有自己獨(dú)立的樣式文件,樣式只作用在組件內(nèi)部,不會泄漏出去。這讓我想起一個(gè)比喻:如果說組件化是把UI拆成一個(gè)個(gè)獨(dú)立的“細(xì)胞”,那BEM就是給每個(gè)細(xì)胞穿上了“防彈衣”,讓它們互相之間不會誤傷。

設(shè)計(jì)令牌:UI體系的“基礎(chǔ)設(shè)施”

如果說BEM解決了“怎么寫”的問題,那設(shè)計(jì)令牌解決的就是“用什么寫”的問題。這是我在搭建電商組件庫時(shí),最晚意識到卻最重要的一個(gè)環(huán)節(jié)。

設(shè)計(jì)令牌本質(zhì)上是一套設(shè)計(jì)決策的抽象——顏色、字體、間距、圓角、陰影、動畫時(shí)長,所有這些視覺決策都被抽取成變量。組件庫不寫死任何具體的數(shù)值,而是使用這些令牌。當(dāng)品牌升級或主題切換時(shí),只需要修改令牌的值,整個(gè)組件庫就自動完成了視覺更新。

電商業(yè)務(wù)尤其需要這種能力。大促期間要換紅色主題、不同品類頻道有不同的品牌色、國際化場景下各地區(qū)的視覺偏好不同——這些需求如果沒有設(shè)計(jì)令牌的支撐,維護(hù)成本會呈指數(shù)級增長。

我最大的教訓(xùn)來自一個(gè)沒有設(shè)計(jì)令牌的項(xiàng)目。產(chǎn)品經(jīng)理說“把主色調(diào)從藍(lán)色改成橙色”,我以為改一個(gè)變量就行,結(jié)果發(fā)現(xiàn)代碼里散落著幾十種不同的藍(lán)色值,有的是#1890ff,有的是#1677ff,有的是手動調(diào)的rgba。那次改色花了整整兩天,我發(fā)誓以后再也不會不建設(shè)計(jì)令牌就開工。

實(shí)用性與擴(kuò)展性的平衡

組件庫的CSS架構(gòu)面臨一個(gè)永恒的矛盾:既要足夠簡單,讓團(tuán)隊(duì)成員容易上手;又要足夠強(qiáng)大,能應(yīng)對各種定制化需求。

在電商場景下,這個(gè)矛盾尤其突出。業(yè)務(wù)方經(jīng)常提出一些“稍微改一點(diǎn)點(diǎn)”的需求——這個(gè)按鈕在這個(gè)頁面要大一點(diǎn),那個(gè)卡片在那個(gè)頻道要換一種布局。如果組件庫設(shè)計(jì)得太死板,這些需求就要靠“覆蓋樣式”來實(shí)現(xiàn),久而久之就背離了組件庫的初衷。

我現(xiàn)在的做法是:把組件庫分為“核心樣式”和“主題變量”兩層。核心樣式是穩(wěn)定不變的,保證組件的基本功能和結(jié)構(gòu);主題變量暴露給業(yè)務(wù)方,允許他們在可控范圍內(nèi)調(diào)整視覺表現(xiàn)。同時(shí)提供一套清晰的覆蓋指南,告訴開發(fā)者什么可以改、什么不該改、怎么改最安全。

這種分層設(shè)計(jì),既保證了組件庫的權(quán)威性,又給了業(yè)務(wù)方足夠的靈活性。它背后的思考是:架構(gòu)不是用來限制人的,而是用來指導(dǎo)人的。好的架構(gòu)應(yīng)該像交通規(guī)則——不是不讓你開車,而是讓你開得更安全、更順暢。

可維護(hù)性:寫給未來的自己

搭建CSS架構(gòu)的時(shí)候,我經(jīng)常問自己一個(gè)問題:半年后的我,或者半年后的新同事,看到這段樣式代碼,能理解當(dāng)時(shí)的設(shè)計(jì)意圖嗎?

這個(gè)問題的答案,決定了架構(gòu)的成敗。我發(fā)現(xiàn),很多CSS架構(gòu)的崩塌,不是因?yàn)榧夹g(shù)選型錯(cuò)了,而是因?yàn)槿狈ξ臋n、缺乏規(guī)范、缺乏代碼審查的機(jī)制。每個(gè)人按自己的理解寫,每個(gè)人覺得“稍微打破一下規(guī)則也沒事”,慢慢地,架構(gòu)就變成了擺設(shè)。

所以在搭建電商UI體系時(shí),我把很大一部分精力放在了“非代碼”的部分。寫組件庫使用文檔、制定樣式規(guī)范、建立Code Review檢查清單、在CI里加樣式lint規(guī)則。這些看起來“務(wù)虛”的工作,恰恰是架構(gòu)能長期存續(xù)的保障。

寫在最后

CSS架構(gòu)這件事,說大不大,說小不小。它不像JavaScript框架那樣“炫技”,也不像Webpack配置那樣“硬核”,但它決定了前端項(xiàng)目長期維護(hù)的幸福感。

搭建電商UI體系的過程,讓我明白了一個(gè)道理:好的CSS架構(gòu),用戶是感知不到的。用戶不會因?yàn)槟阌昧薆EM就夸你,不會因?yàn)槟阌性O(shè)計(jì)令牌就多買一件商品。但如果沒有這些,用戶可能會因?yàn)轫撁驽e(cuò)亂、樣式怪異而離開。

好的架構(gòu),就是讓所有糟糕的事情不發(fā)生。這大概就是CSS架構(gòu)的終極意義——做那個(gè)在幕后默默撐起一切的“隱形腳手架”。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 架構(gòu)
    +關(guān)注

    關(guān)注

    1

    文章

    535

    瀏覽量

    26637
  • CSS
    CSS
    +關(guān)注

    關(guān)注

    0

    文章

    113

    瀏覽量

    15586
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    STM32G0 系列 CSS 功能及應(yīng)用問題

    1. 前言STM32 G0 系列 MCU 自帶時(shí)鐘丟失功能,即 CSS 功能,能自動檢測 HSE 和 LSE 是否丟失。本文對 CSS 功能進(jìn)行簡單介紹,并對客戶在應(yīng)用 LSECSS 功能的過程中
    發(fā)表于 04-15 16:16 ?0次下載

    2022全新版!Java分布式架構(gòu)設(shè)計(jì)與開發(fā)實(shí)戰(zhàn)(完結(jié))

    2022全新版!Java分布式架構(gòu)設(shè)計(jì)與開發(fā)實(shí)戰(zhàn)(完結(jié)) 分庫分表實(shí)戰(zhàn):Java海量數(shù)據(jù)存儲架構(gòu)設(shè)計(jì) 在現(xiàn)代互聯(lián)網(wǎng)應(yīng)用中,隨著業(yè)務(wù)規(guī)模的指數(shù)級增長,數(shù)據(jù)庫性能瓶頸已成為制約
    發(fā)表于 03-30 15:20

    X (Twitter) 推薦系統(tǒng)架構(gòu)設(shè)計(jì)深度解析

    推薦系統(tǒng)到底是如何理解海量用戶與內(nèi)容的?本期文章帶你深入 X (前 Twitter) 推薦算法庫的底層源碼。解構(gòu)推薦系統(tǒng)關(guān)鍵的“漏斗型”架構(gòu)——從高效的雙塔召回到復(fù)雜精妙的 Transformer
    的頭像 發(fā)表于 02-25 23:56 ?5112次閱讀

    《Altium Designeder 25電路設(shè)計(jì)實(shí)踐》+讀后感

    《Altium Designeder 25電路設(shè)計(jì)實(shí)踐》+讀后感 感謝發(fā)燒友電子論壇提供的機(jī)會,能夠有幸讀到這本書,通讀一遍后,發(fā)現(xiàn)該書將Altium Designeder 25的軟件,重新詳細(xì)
    發(fā)表于 02-24 17:07

    蘑菇車聯(lián)與LG電子達(dá)成戰(zhàn)略合作

    近日,蘑菇車聯(lián)(MOGOX)與全球科技和電子領(lǐng)導(dǎo)企業(yè)LG電子達(dá)成戰(zhàn)略合作,雙方將圍繞自動駕駛車輛部署與運(yùn)營、數(shù)字道路基礎(chǔ)設(shè)施建設(shè)及城市智能治理等領(lǐng)域加強(qiáng)業(yè)務(wù)協(xié)同與合作,聯(lián)合拓展中韓及全球自動駕駛市場。蘑菇車聯(lián)總裁付強(qiáng)、LG電子CTO本部副總裁KIM HAKSEONG出席簽
    的頭像 發(fā)表于 02-04 09:40 ?479次閱讀

    【NPU實(shí)戰(zhàn)】在迅為RK3588上玩轉(zhuǎn)YOLOv8:目標(biāo)檢測與語義分割一站式部署指南

    【NPU實(shí)戰(zhàn)】在迅為RK3588上玩轉(zhuǎn)YOLOv8:目標(biāo)檢測與語義分割一站式部署指南
    的頭像 發(fā)表于 12-12 14:30 ?6333次閱讀
    【NPU<b class='flag-5'>實(shí)戰(zhàn)</b>】在迅為RK3588上<b class='flag-5'>玩轉(zhuǎn)</b>YOLOv8:目標(biāo)檢測與語義分割一站式部署指南

    【迅為RK3568開發(fā)板NPU實(shí)戰(zhàn)】別再閑置你的NPU!手把手教你玩轉(zhuǎn)RKNN-Toolkit2 的使用

    【迅為RK3568開發(fā)板NPU實(shí)戰(zhàn)】別再閑置你的NPU!手把手教你玩轉(zhuǎn)RKNN-Toolkit2 的使用
    的頭像 發(fā)表于 11-11 14:21 ?1443次閱讀
    【迅為RK3568開發(fā)板NPU<b class='flag-5'>實(shí)戰(zhàn)</b>】別再閑置你的NPU!手把手教你<b class='flag-5'>玩轉(zhuǎn)</b>RKNN-Toolkit2 的使用

    新西蘭-中國友好協(xié)會蒞臨蘑菇車聯(lián)參觀交流

    2025年9月24日上午,新西蘭-中國友好協(xié)會主席麥克·道森代表團(tuán)一行及北京市東城區(qū)相關(guān)領(lǐng)導(dǎo)蒞臨蘑菇車聯(lián)參觀交流,蘑菇車聯(lián)相關(guān)負(fù)責(zé)人陪同接待。雙方圍繞物理世界AI大模型MogoMind、城市級AI網(wǎng)絡(luò)建設(shè)、L4級自動駕駛車輛性能以及中新科技合作前景等話題展開深入探討。
    的頭像 發(fā)表于 09-30 11:28 ?1005次閱讀

    Arm正式取消Cortex命名!CPU向著高算力進(jìn)發(fā),Lumex CSS平臺加持!

    工智能 (AI) 體驗(yàn)的先進(jìn)計(jì)算平臺。 ? CSS是Arm推出的計(jì)算子系統(tǒng),針對不同的應(yīng)用領(lǐng)域,提供包括Arm Neoverse 計(jì)算子系統(tǒng)、面向汽車行業(yè)的 Arm?Zena、面向移動市場的 Arm
    的頭像 發(fā)表于 09-17 08:25 ?3284次閱讀
    Arm正式取消Cortex命名!CPU向著高算力進(jìn)發(fā),Lumex <b class='flag-5'>CSS</b>平臺加持!

    蘑菇 API 接口:開啟時(shí)尚電商個(gè)性化推薦新潮流

    在當(dāng)今數(shù)字化時(shí)代,時(shí)尚電商平臺正經(jīng)歷著前所未有的變革。蘑菇作為中國領(lǐng)先的時(shí)尚社交電商平臺,憑借其創(chuàng)新的 API 接口,正在引領(lǐng)個(gè)性化推薦的新潮流。這篇文章將逐步解析蘑菇 API 接
    的頭像 發(fā)表于 09-04 15:19 ?792次閱讀

    Arm Zena CSS加速軟件和芯片開發(fā)進(jìn)程

    Arm 控股有限公司(納斯達(dá)克股票代碼:ARM,以下簡稱 Arm)近期宣布推出 Arm Zena 計(jì)算子系統(tǒng) (Compute Subsystems, CSS)。作為標(biāo)準(zhǔn)化且預(yù)先集成的計(jì)算平臺
    的頭像 發(fā)表于 08-25 16:22 ?2212次閱讀

    Energy Absolute一行參訪蘑菇車聯(lián)

    近日,東南亞最大電動商用車制造商Energy Absolute一行參訪蘑菇車聯(lián)(MOGO.AI),深入了解蘑菇車聯(lián)在AI大模型、AI網(wǎng)絡(luò)與自動駕駛領(lǐng)域的融合應(yīng)用實(shí)踐。圍繞自動駕駛巴士業(yè)務(wù)
    的頭像 發(fā)表于 06-16 17:36 ?1142次閱讀

    鴻蒙5開發(fā)寶藏案例分享---應(yīng)用架構(gòu)實(shí)戰(zhàn)技巧

    大家好! 今天咱們聊聊鴻蒙開發(fā)中那些“官方文檔提了但實(shí)際開發(fā)難找”的架構(gòu)設(shè)計(jì)技巧。結(jié)合官方文檔,我會用 真實(shí)代碼案例+通俗講解 ,幫你把分層架構(gòu)和線程通信落地到項(xiàng)目里,告別“理論會了,代碼不會
    發(fā)表于 06-12 16:14

    蘑菇車聯(lián)與日照市達(dá)成戰(zhàn)略合作

    近日,日照市與蘑菇車聯(lián)信息科技有限公司(以下簡稱 “蘑菇車聯(lián)”)簽署戰(zhàn)略合作協(xié)議。雙方圍繞AI大模型在自動駕駛及智慧交通領(lǐng)域的應(yīng)用賦能開展深度合作,助力日照市成為全國自動駕駛智慧旅游標(biāo)桿城市,打造AI網(wǎng)絡(luò)與自動駕駛?cè)诤蠎?yīng)用“日照樣板”。
    的頭像 發(fā)表于 05-30 15:40 ?956次閱讀

    零死角玩轉(zhuǎn)STM32——系統(tǒng)

    本文共4冊,由于資料內(nèi)存過大,分開上傳,有需要的朋友可以去主頁搜索下載哦~ 《零死角玩轉(zhuǎn) STM32》系列教程由初級篇、中級篇、高級篇、系統(tǒng)篇、四個(gè)部分組成,更適合初學(xué)者,步步為營,從入門到精通
    發(fā)表于 05-21 14:08
    肥东县| 朝阳市| 潜山县| 长乐市| 鄂伦春自治旗| 拉孜县| 广州市| 凤城市| 永平县| 吉水县| 托克逊县| 海南省| 玉环县| 西乡县| 海门市| 修文县| 泰和县| 盈江县| 安丘市| 定日县| 泗水县| 临洮县| 勃利县| 浦北县| 桦南县| 渝北区| 长武县| 保德县| 垦利县| 阳朔县| 莎车县| 吉林省| 龙门县| 铜梁县| 贞丰县| 萨迦县| 子洲县| 金昌市| 曲靖市| 昆明市| 南部县|