日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
CSS類名的單詞連字符:下劃線還是連接符?

本文的部分內(nèi)容整理自我對此問題的解答: 命名 CSS 的類或 ID 時單詞間如何連接? – 知乎

成都網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、成都網(wǎng)站建設(shè)、微信開發(fā)、成都小程序開發(fā)、集團成都定制網(wǎng)站等服務(wù)項目。核心團隊均擁有互聯(lián)網(wǎng)行業(yè)多年經(jīng)驗,服務(wù)眾多知名企業(yè)客戶;涵蓋的客戶類型包括:紙箱等眾多領(lǐng)域,積累了大量豐富的經(jīng)驗,同時也獲得了客戶的一致稱揚!

問題

CSS 類或 ID 命名時單詞間連接通常有這幾種寫法:

  • 駝峰式: solutionTitle、solutionDetail
  • 用橫杠(連接符)連接: solution-title、solution-detail
  • 下劃線連接: solution_titlesolution_detail

應(yīng)該采用哪種寫法呢?選擇的時候是出于個人習(xí)慣還是有別的考慮?

看了下豆瓣,美團,淘寶的源碼,都是采用 solution_title 的寫法。

我的回答

首先定個性,這是個純粹的“代碼風(fēng)格”問題。

什么是“代碼風(fēng)格”問題?有一些特征:

  • 技術(shù)規(guī)范不會硬性規(guī)定。雖然規(guī)范有時可能會提供指導(dǎo)性的建議,或者有時會有行業(yè)大牛出來鼓吹***實踐。
  • 個性化十分明顯。也就是蘿卜青菜各有所愛、公說公有理婆說婆有理,永無定論。

扯完之后說一下我自己的習(xí)慣:

以前用下劃線

主要原因是在編輯器中雙擊可以選中;另外自己覺得下劃線好看(純個人喜好)。除此以外可能還有一點“小白式謹(jǐn)慎”(避免與 CSS 屬性名/值弄混、避免與減號弄混),或者我的啟蒙教材就是使用下劃線的。

現(xiàn)在主要使用連字符

后來逐漸接手或參與了一些別人的項目,接觸過各種代碼風(fēng)格。在老外的一些項目中接觸到大量的使用連字符的命名,看多了感覺也不難看。在編輯器中也可以通過“雙擊并拖動”來選中,所以就逐漸過渡到了連字符。

在特殊場合用駝峰式

駝峰式寫法輸入不方便、引入了大小寫的復(fù)雜度、可讀性無優(yōu)勢,因此很少在日常開發(fā)中使用。而正因為如此,我目前主要在一些框架級的類名中使用,以便于日常開發(fā)的命名習(xí)慣區(qū)分開,避免無意中污染框架級樣式的可能性。

關(guān)于標(biāo)準(zhǔn)

有網(wǎng)友提到:

HTML 和 CSS 語法中,無論是屬性名和值,用到連接符的地方都是 - 沒有 _。Follow 標(biāo)準(zhǔn)有益無害。

這種說法我并不贊同。因為“follow 標(biāo)準(zhǔn)”一說沒有根據(jù),而且邏輯不清。

我們很容易理清一件事——給元素的 class 和 id 命名,本質(zhì)上是給 HTML 標(biāo)簽的 class 與 id 屬性寫入值。HTML 的標(biāo)簽屬性值的合法性與 HTML 標(biāo)簽屬性名、CSS 屬性的名/值的命名習(xí)慣有關(guān)系嗎?

說到“標(biāo)準(zhǔn)”,其實我也完全不知道 class 和 id 的合法值是什么、不知道下劃線是否合法,甚至記不太清楚 class 與 id 的值是否是大小寫敏感的。為此,我查閱了現(xiàn)行規(guī)范 HTML 4.01 和 CSS 2.1 的部分章節(jié)。CSS 2.1 是這樣說的:

In CSS, identifiers (including element names, classes, and IDs in selectors) can contain only the characters [a-zA-Z0-9] and ISO 10646 characters U+00A0 and higher, plus the hyphen (-) and the underscore (_); …

也就是說,用下劃線來連接多個單詞作為 class 或 id 的值,是合法的。

(賀師俊老師提示道:CSS 1 和 2 的規(guī)范在這一點上有錯誤,沒有把下劃線加進去;直到 CSS 2.1 中,這個問題才被修正。)

其它觀點

關(guān)于可讀性

賀師俊老師(@hax)提出了一個容易被忽略但實際上很重要的因素:

-_ 有一點好的地方是, _ 有時候會難以分辨,就好像空格一樣。而 class 里面有沒有空格是挺重要的。比較以下三種用法:

 
 

關(guān)于編輯器

很多同學(xué)提到了不同的單詞連接方式對選擇操作的影響,比如雙擊可以直接選中用 _ 連接的多個單詞,但用 - 連接的多個單詞則無法全部選中,選區(qū)會在 - 處終止,即只能選中一個單詞。

Sublime Text

對此,一絲同學(xué)(@yisibl)在 微博 做了科普:

CSS 命名用連字符 - 不能雙擊選中的問題一直是一個偽命題,這是編輯器的問題,因為這個而選用下劃線 _ 實在有些牽強。在 Sublime Text 2 的全局配置文件 Preferences.sublime-settings 中找到 word_separators 字段,刪掉其中的 - 即可雙擊選中一連串的多個單詞。

Vim

也有一位 潘魏增同學(xué) 提供了 Vim 的配置方法:

如果使用 vim,可以設(shè)置 set iskeyword+=-,這樣就可以匹配選中以 – 連接的關(guān)鍵詞,search 和 mark 的時候會比較方便。

(抱歉,這里只是純轉(zhuǎn)發(fā),暫時無法驗證。)

UltraEdit

我在 Windows 下一般用 UltraEdit 干活,它有一種操作叫作 Ctrl + 雙擊。而且我們可以設(shè)置此操作的分界符,很靈活。

鼠標(biāo)選擇

如果你的編輯器不支持上述配置或操作,要想一次性選中以 - 連接的多個單詞,其實也是有解決方案的:雙擊的***一擊先不要松開,再左右拖動就可以以單詞為單位擴張選區(qū)。(這種選擇方式幾乎適用于所有編輯器,而且 Windows 和 Mac 通吃。)

實際上我并不建議像前面幾種方法那樣在編輯器中取消 - 的分界符身份,而是建議使用這種“雙擊 + 拖動”的方法來選擇任意數(shù)量的單詞。因為,某些時候你只想選中 one-two-three 中的 one-twotwo-three 或單個單詞,那么這種方法顯然更自由更精確——想選少選少,想選多選多。

— Bonus Track —

如果你在使用 WebStorm(或它的兄弟 IDE),就不要用鼠標(biāo)點來點去了,不優(yōu)雅。

你可以把光標(biāo)移到某個單詞上,用 Ctrl + W(在 Mac 下是 Cmd + W)快捷鍵就可以選中當(dāng)前單詞;更神奇的是,這個快捷可以連續(xù)使用,可以不斷把選區(qū)擴張到更大的語法單元:單詞 → 一串單詞 → 整個字符串(或語句) → 對象(或函數(shù)作用域) → …… → 整個文件。

(唯一不便的是,這個快捷鍵在其它程序中是關(guān)閉當(dāng)前窗口的操作,容易混淆,建議在 IDE 中給這個操作分配其它的快捷鍵。)

原文出處: cssmagic 的博客(@CSS魔法)


分享題目:CSS類名的單詞連字符:下劃線還是連接符?
文章鏈接:http://www.dlmjj.cn/article/cdssooj.html