新聞中心
這篇文章主要介紹“css中選擇符的命名規(guī)定”,在日常操作中,相信很多人在css中選擇符的命名規(guī)定問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”css中選擇符的命名規(guī)定”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
創(chuàng)新互聯(lián)建站堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的宜城網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
原來命名可以這樣的
前一段時間,在某一站點看到了這樣的內(nèi)容:
"這也可以?"是我對此的第一印象。不過,稍作調(diào)查知道了,這樣寫確實是有效的。此外,這個?_?的符號表情,看起來是不是相當(dāng)有存在感?再看看搭配的css屬性,display: none !important;即定義元素一定不顯示,是不是也非常符合這個表情想要表達(dá)的意思?
只要遵循css語法,就可以很好地應(yīng)用這種不常見的命名。
命名字符的規(guī)定
英文單詞的組合你一定很熟悉,例如.top_nav用來表示頂部導(dǎo)航,不僅用了合法的選擇符,而且也很符合語義化的要求。
另外,你應(yīng)該也知道,選擇符命名的開頭字符,不可以是數(shù)字,例如.3-column不是合法的選擇符。使用不合法的選擇符的后果是,對應(yīng)的css樣式規(guī)則會因為選擇符無法正確解析,而變?yōu)闊o效。
事實上,css語法對于命名字符有更多的規(guī)定。以下是W3C關(guān)于命名標(biāo)識符的說明中的內(nèi)容:
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 (_); they cannot start with a digit, two hyphens, or a hyphen followed by a digit. Identifiers can also contain escaped characters and any ISO 10646 character as a numeric code.
意思是說,css中允許使用的命名字符,包括大小寫英文字母、數(shù)字、連字符-、下劃線_及其他ISO 10646字符集(等同于Unicode)中的字符。同時,起始字符部分不能是數(shù)字,或連續(xù)2個-,或1個-后接1個數(shù)字。此外,允許使用轉(zhuǎn)義字符和任意ISO 10646字符的數(shù)字代碼。
經(jīng)過測試,IE6對起始字符是下劃線_和單個連字符-的情況,也會認(rèn)定樣式規(guī)則無效。
字符轉(zhuǎn)義
可以看出,命名允許使用的字符其實是非常多的。但是,有一個地方需要注意,就是特殊字符。特殊字符是指在css語法中,被認(rèn)定用來表示特定含義的字符(相當(dāng)于編程語言中的關(guān)鍵字)。例如,...這樣的class命名是不合法的,因為.是css選擇符中表示class的字符,因此不允許直接用在命名中(...這位沉默著的class名你感覺如何?)。
css中的特殊字符包含:!, ", #, $, %, &, ', (, ), *, +, ,, -, ., /, :, ;, <, =, >, ?, @, [, \, ], ^,`, {, |, }, 和~。
這個時候,想要在命名中也加入這些特殊字符,就要使用字符轉(zhuǎn)義(character escape)。字符轉(zhuǎn)義通過反斜杠\實現(xiàn),在css選擇符中,你可以通過在特殊字符前加\的方法,取消特殊字符的特定含義,使其可以正確地被用于命名。例如,特殊字符#就可以用\#來表示。
反斜杠\的作用還不只如此。前面說到,任意ISO 10646字符都可以使用。按照ISO 10646的定義,所有的字符都可以用十六進(jìn)制的代碼來表示(尤其是一些不易直接輸入的字符需要這樣表示)。css語法中,以反斜杠\開頭,后接最多6位十六進(jìn)制數(shù)字,即構(gòu)成一個ISO 10646字符的代碼。這和直接輸入ISO 10646字符是一樣的,但由于形式上是代碼,因此是最可靠的。
取消特殊字符的特定含義,除了前邊的直接在前邊加\的寫法外,還可以用ISO 10646代碼。比如#也可以用\23或者\(yùn)000023表示。請注意,如果代碼不滿6位(前面幾位是0),一定要在末尾留一個空格,這才能組成一個正確的ISO 10646代碼(這個空格是分隔標(biāo)識用,算作代碼的一部分,不會引發(fā)選擇符中的特殊含義)。如果不想有這個空格,請使用完整的6位十六進(jìn)制代碼。
比如,下面是一個合法的命名示例。html:
XML/HTML Code復(fù)制內(nèi)容到剪貼板
css中的定義:
CSS Code復(fù)制內(nèi)容到剪貼板
.\5E _\5E {width:50px;height:50px;background:tomato;}
這里的^屬于特殊字符,但通過代碼寫法后,就可以正確解析了。
關(guān)于css字符轉(zhuǎn)義的更多介紹,推薦你閱讀CSS character escape sequences,這位作者還給了一個很有用的轉(zhuǎn)義工具。
讓命名更有趣
還需要提示一下的是,ISO 10646包含的字符,有很多即使看起來很奇特,但由于不是特殊字符,是可以直接輸入的。盡管可能因為編輯器字體原因無法顯示,但仍然有效。比如,html:
XML/HTML Code復(fù)制內(nèi)容到剪貼板
- music on~
對應(yīng)css:
CSS Code復(fù)制內(nèi)容到剪貼板
.?{width:50px;height:50px;background:mistyrose;color:#333;}
對應(yīng)的實際元素是(對的,我要證明這個寫法有效!):
music on~
如果你想表示關(guān)于音樂內(nèi)容的區(qū)域,這樣字符圖形也許可以說比英文單詞更加符合語義。而更重要的是,這種寫法更有趣!
在使用這些字符的時候,請注意,css和html的編碼都應(yīng)使用utf-8。如果html是服務(wù)器端語言(比如php)生成的,則編碼選項應(yīng)設(shè)置為utf-8。
關(guān)于如何找到各種字符,歡迎到Unicode查詢站點Unicode character table。
看到這里,你是否已經(jīng)想開始寫點不一樣的選擇符命名呢?我已經(jīng)試過一些↓
html:
XML/HTML Code復(fù)制內(nèi)容到剪貼板
css:
CSS Code復(fù)制內(nèi)容到剪貼板
.\(?ω?\){width:50px;height:50px;background:skyblue;}
.\(?ρ?\*\){width:50px;height:50px;background:aquamarine;}
以后覺得詞不達(dá)意的時候,就用這種吧,一定可以給某個看你代碼的人一個驚喜。
結(jié)語
實際地了解css語法對于命名標(biāo)識符的規(guī)定后才知道,命名時原來還有如此多的空間可以發(fā)揮。一起試試更多的有趣的選擇符吧!
到此,關(guān)于“css中選擇符的命名規(guī)定”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
網(wǎng)站標(biāo)題:css中選擇符的命名規(guī)定
轉(zhuǎn)載源于:http://www.dlmjj.cn/article/ihjeoi.html