Roger Johansson (這個(gè)老外仿佛是參與編訂 W3C 的家伙)前幾天寫了一個(gè)關(guān)于CSS 3的文章:CSS 3 selectors explained 里面說了去年12月份w3c最新制定的CSS 3的新標(biāo)簽、新用法,我用機(jī)器翻譯看著也蠻爽的,把看得懂的摘錄下來,大家也學(xué)習(xí)一下先進(jìn)經(jīng)驗(yàn)。呵呵~
在CSS 3里,假設(shè)你做了一個(gè)包含以下標(biāo)簽結(jié)構(gòu)的HTML文件:
<div id="nav-primary"></div> <div id="content-primary"></div> <div id="content-secondary"></div> <div id="tertiary-content"></div> <div id="nav-secondary"></div>
然后呢,在CSS文件里
div[id^="nav"] { background:#ff0; }
注意是“^” CSS在這種情況下將控制[u]div#nav-primary 和div#nav-secondary[/u]。請大家注意,這兩個(gè)標(biāo)簽前面都有 nav ,到底是以"-"做為分隔,還是把ID進(jìn)行從前至后匹配就不得而知了 [sweat]
div[id$="primary"] { background:#ff0; }
注意是“$” CSS在這種情況下將控制[u]div#nav-primary 和div#content-primary[/u]。請大家注意,這兩個(gè)標(biāo)簽后面都有 primar ,到底是以"-"做為分隔,還是把ID進(jìn)行從后至前匹配也就不得而知了 [sweat]
div[id*="content"] { background:#ff0; }
注意是“*” CSS在這種情況下將控制[u]div#content-primary div#content-secondary 和div#tertiary-content[/u]。請大家注意,這些標(biāo)簽都含有 content ,到底是以"-"做為分隔,還是把ID自動掃描后匹配就更不得而知了 [sweat]
好象作者說這幾個(gè)標(biāo)簽現(xiàn)在除了IE不支持,其它最新版的各種瀏覽器都支持了,大家可以一試,我就不試了~ [lol]
div#content-primary:target { outline:1px solid #300; }
注意那個(gè)“:target” CSS在這種情況下將控制 http: //www.example.com/index.html#content-primary 這個(gè)錨鏈接(錨鏈接差不多可以理解就是一個(gè)網(wǎng)頁內(nèi)的鏈接,比較在有些網(wǎng)頁看到的回到頂部)
作者說現(xiàn)在Mozilla 和 Safari瀏覽器支持這個(gè)
input[type="text"]:enabled { background:#ffc; } input[type="text"]:disabled { background:#ddd; }
注意那個(gè)“[type="text"]:enabled” 這個(gè)就是控制表單的CSS了,“[u][type="text"][/u]”好象是表單里type是text的吧。。。那[u]type="password"[/u]會是啥呢?
input:checked { border:1px solid #090; }
注意那個(gè)“:checked” 這個(gè)就是控制表單的“選擇”的CSS了。。。
作者說現(xiàn)在Opera和Mozilla瀏覽器支持這些
:root { background:#ff0; } html { background:#ff0; }
大家注意那個(gè)“:root” 這個(gè)“:root”是比 html 還要高一級的標(biāo)簽,這個(gè)大家可以看 一葉千鳥 寫的 正確認(rèn)識html與body 他在文中發(fā)現(xiàn)了原來html 外面還有個(gè)框框,嘿嘿~
作者說現(xiàn)在Mozilla 和 Safari瀏覽器支持這個(gè)
接下來的 :nth-child() 就比較有意思了,呵呵~在括號里可以放數(shù)字和默認(rèn)的字母~
p:nth-child(3) { color:#f00; }
這個(gè)意思好象是說以第一個(gè)出現(xiàn)的 P 為基礎(chǔ),只要是“3”的倍數(shù)的全部 P 都會被控制~
p:nth-child(odd) { color:#f00; }
這個(gè)意思好象是說以第一個(gè)出現(xiàn)的 P 為基礎(chǔ),然后 奇數(shù) 目的全部 P 都會被控制~
p:nth-child(even) { color:#f00; }
這個(gè)意思好象是說以第一個(gè)出現(xiàn)的 P 為基礎(chǔ),然后 偶數(shù) 目的全部 P 都會被控制~
p:nth-child(3n+0) { color:#f00; } p:nth-child(3n) { color:#f00; }
這兩個(gè)標(biāo)簽是等效的,因?yàn)榈谝粋(gè)后面的0等沒沒起作用,他的意思就是3倍于第一個(gè)出現(xiàn)的 P 的 P 都會被控制~(好繞口啊,HOHO~ [rolleyes] )也就是說這個(gè) “n” 會從0.1.2.3.4.5.6....一直取值下去~算出來多少就是多少的 P 都會被控制。。。
tr:nth-child(2n+11) { background:#ff0; }
這個(gè)如果大家理解上面的了,這個(gè)也不難理解,不過他控制的標(biāo)簽變成了 “tr” 這就是說表格會變得更加變化多端,感覺大家一定要小學(xué)算數(shù)得好,學(xué)得不好得快快回家再學(xué)一學(xué)小學(xué)算數(shù)去。。。(不過,這樣的標(biāo)簽是不是加重了電腦處理的效率呢? [confused] 希望我的但心是多余的。。。)
p:last-child { background:#ff0; }
在 p 之前的一個(gè) p 被控制 (NND,p來p去的,打pp [sweat] )
:not(p) { border:1px solid #ccc; }
這個(gè)p不被控制,自已用自帶的樣式的意思吧,應(yīng)該是和前面的那些一起用才是。。。
p ~ ul { background:#ff0; }
ul 優(yōu)先于 p 顯示,這是咋個(gè)優(yōu)先法,不清楚。。。
基本上我看得懂的就這些了,大家可以到下面兩個(gè)網(wǎng)址接著學(xué)習(xí),我有什么說錯(cuò)了,記得告訴我啊 www.456bereastreet.com/archive/200601/css_3_selectors_explained/ www.w3.org/TR/2005/WD-css3-selectors-20051215/
經(jīng)典論壇討論貼: http://www.95time.cn/bbs/NewsDetail.asp?id=2427359
出處:藍(lán)色理想
責(zé)任編輯:moby
◎進(jìn)入論壇網(wǎng)頁制作、網(wǎng)站綜合版塊參加討論
|