css命名

来源:https://www.cnblogs.com/Allerge/archive/2022/10/25/16824575.html
-Advertisement-
Play Games

BEM是一種CSS命名規範。 BEM代表 “塊(block),元素(element),修飾符(modifier)”。 好處: 擺脫特異性的困擾 修複繼承問題 停止擔心命名 在選擇器中,由以下三種符號來表示擴展的關係: 中劃線 :僅作為連字元使用,表示某個塊或者某個子元素的多單詞之間的連接記號。 __ ...


BEM是一種CSS命名規範。

BEM代表 “塊(block),元素(element),修飾符(modifier)”。
好處:
擺脫特異性的困擾
修複繼承問題
停止擔心命名
在選擇器中,由以下三種符號來表示擴展的關係:

  • 中劃線 :僅作為連字元使用,表示某個塊或者某個子元素的多單詞之間的連接記號。
    __ 雙下劃線:雙下劃線用來連接塊和塊的子元素
    _ 單下劃線:單下劃線用來描述一個塊或者塊的子元素的一種狀態 。

/* 常規寫法 */
.list{} 塊
.list .item{} 元素

/* BEM寫法 */
.list{}
.list__item{}

“修飾符”可以理解為一個塊的特定狀態!
/* 常規寫法 */

  • Pricing
  • Contact

/* BEM寫法 */

  • 選中的塊里元素 Pricing
  • Contact

CSS命名原則:

1.短命名比長命名好:縮短書寫時間// 推薦.some-intro{...}

2.組合命名比單命名好:明確關係,便於查找位置// .cs-header{...}

面向屬性命名&面向語義命名

面向屬性的命名指選擇器的命名是跟著具體的CSS樣式走的,與項目、頁面、模塊統統沒有關係。例如,比較經典的清除浮動類名.clearfix:
.clearfix:after { content : ''; display: table; clear: both; }

優點:在於CSS的重用率高,性能最佳,即插即用,方便快捷,開發也極為迅速,因為它省去了大量在 HTML 和CSS文件之間切換的時間。
缺點:在於由於屬性單一,其適用場景有限,另外因為使用方便,易被過度使用,從而帶來更高的維護成本。

面向語義的命名則是根據應用元素所處的上下文來命名的。例如:

.header { background-color: #333; color: #fff; }
.logo {font-size: 0; color : transparent;
上述兩種命名方式各有優缺點:

優點是應用場景廣泛,可以實現非常精緻的佈局效果,擴展方便;
缺點:在於代碼啰唆,開發效率一般,因為所有HTML都需要命名,哪怕是一個10像素的間距。這就導致很多開發者要麼選擇直接使用標簽選擇器,要麼就選擇一個簡單的類名,然後通過父子關係限定樣式,結果帶來了更糟糕的維護問題。

css 命名推薦

狀態:

前一個 prev
後一個 next
當前的 current
顯示的 show
隱藏的 hide
打開的 open
關閉的 close

選中的 selected
有效的 active
預設的 default
反轉的 toggle

禁用的 disabled
危險的 danger
主要的 primary
成功的 success
提醒的 info
警告的 warning
出錯的 error

大型的 lg
小型的 sm
超小的 xs

佈局:

文檔 doc
頭部 header(hd)
主體 body
尾部 footer(ft)
主欄 main
側欄 side
容器 box/container

通用:

列表 list
列表項 item
表格 table
表單 form
鏈接 link
標題 caption/heading/title
菜單 menu
集合 group
條 bar
內容 content
結果 result

組件:

按鈕 button(btn)
字體 icon
下拉菜單 dropdown
工具欄 toolbar
分頁 page
縮略圖 thumbnail
警告框 alert
進度條 progress
導航條 navbar
導航 nav
子導航 subnav
麵包屑 breadcrumb(crumb)
標簽 label
徽章 badge
巨幕 jumbotron
面板 panel
窪地 well
標簽頁 tab
提示框 tooltip
彈出框 popover
輪播圖 carousel
手風琴 collapse
定位浮標 affix

語義化小部分:
品牌 brand
標誌 logo
額外部件 addon
版權 copyright
註冊 regist(reg)
登錄 login
搜索 search
熱點 hot
幫助 help
信息 info
提示 tips
開關 toggle
新聞 news
廣告 advertise(ad)
排行 top
下載 download

功能部件:

左浮動 fl
右浮動 fr
清浮動 clear


引用:https://juejin.cn/post/7126505567408881677


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 報名地址:https://www.bagevent.com/event/8322877 2022年,世界正在改變,開源創造價值。已經辦到第七屆的開源年會首次來到杭州與開發者們相聚。你眼中的開源是怎樣的?對於開源你有沒有想要講述的? 「開源」對於很多人而言,其存在的意義早就不止在於源代碼的開放彙集,更 ...
  • 3.1 SQL概述: SQL:結構化查詢語言,是關係資料庫的標準語言,SQL是一個通用的、功能極強的關係資料庫語言 結構化查詢:理解:就是只要告訴資料庫我要乾什麼,怎麼乾就可以了 3.1.2 SQL的特點: 綜合統一: 集數據定義語言 DDL,數據操縱語言 DML,數據控制語言 DCL功能於一體, ...
  • 首發微信公眾號:SQL資料庫運維 原文鏈接:https://mp.weixin.qq.com/s?__biz=MzI1NTQyNzg3MQ==&mid=2247485212&idx=1&sn=450e9e94fa709b5eeff0de371c62072b&chksm=ea37536cdd40da7 ...
  • 一、術語 路由(route): 在 Flutter 中,屏 (screen) 和 頁面 (page) 都叫做 路由 (route)。 在 Android 開發中,Activity 相當於“路由”,在 iOS 開發中,ViewController 相當於“路由”。在 Flutter 中,“路由”也是一 ...
  • 近年來uni-app發展勢頭迅猛,只要會vue.js,就可以開發一套代碼,發佈移動應用到iOS、Android、Web(響應式)、以及各種小程式(微信/支付寶/百度/頭條/飛書/QQ/快手/釘釘/淘寶)、快應用等多個平臺。憑藉著此跨平臺的特性,吸引了大批公司和開發者的青睞,據官網顯示目前其有900萬 ...
  • 在 vite 出現以前,vuepress 是搭建組件庫文檔不錯的工具,支持以 Markdown 方式編寫文檔。伴隨著 vite 的發展,vitepress 已經到了 1.0.0-alpha.22 版本,很多博客還是基於 0.x 版本,1.0.0 與 0.22 配置略有差別,尤其是一些 vitepre ...
  • 這裡給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 平時大家開發vue項目的時候,相信大部分人都是使用 vue-cli腳手架生成的項目架構,然後 npm run install 安裝依賴,npm run serve啟動項目然後就開始寫業務代碼了。 但是對項目里的webpack封裝和配置瞭解 ...
  • #$router.push({name:component})與$router.push(‘pathName’)的小區別:前者 不能 復用組件的可能性大一些 ###思路: 來回切換組 檢測hash值,當點擊 熱點 之後切換到 相應的 搜索結果列表 組件 回來的時候,點擊 搜索框的 小 x 清空內容 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...