- From: Kang-Hao (Kenny) Lu <kennyluck@w3.org>
- Date: Sat, 12 Mar 2011 12:02:18 +0900
- To: John Hax <johnhax@gmail.com>, 中文HTML5同樂會ML <public-html-ig-zh@w3.org>
大家好 這是之前 Hax 的一些提案 → http://lists.w3.org/Archives/Public/public-html-ig-zh/2010Sep/0012 的第三項 (歡迎大家一起來考古 :p) (10/09/08 3:02), John Hax wrote: > [恕刪] > > 三、CSS3 selector [att~=val] 的问题 > > [attr~=val]是attr为空格分隔的词中包含val。按照现在的规定Val本身不能含 > 空格,如果含空格是不可能match的。 > > 建议修改这个行为,如果val包含空格,则表示attr的词列表中包含任意一个val > 中空格分隔的词 雖然不太看好,總是試著送出去試試。[1] [1] http://lists.w3.org/Archives/Public/www-style/2011Mar/thread#msg215 > > nav a[rel~="prev"]::before, nav a[rel~="next"]::before, nav > a[rel~="first"]::before, nav a[rel="last"]::before, nav > a[rel~="up"]::before { > border-radius: 4px; > background: url(nav-link-bg.png) > } > > 注意到这个selector序列会非常冗长(复杂的情况下会更长到不可思议),而且 > 不幸的,很容易写错而且很难看出来(各位能看出来我哪里写 错了吗?) 找很久找到了 :) 不公佈留給其他人試試看 xd > 这时候如果支持前述定义,就可大大简化了: > > nav a[rel~="prev next first last up"]::before { > border-radius: 4px; > background: url(nav-link-bg.png) > } > nav a[rel~="prev next first last up"][rel~="external"]::before { > background: url(external-nav-link-bg.png) > } 其實現在 Mozilla 有這個 :any 的提案[2](還沒有寫成 W3C 文檔)是個很一般 的解決用「,」的樣式過長問題的提案,你的第二個樣式可以寫成: nav a:any([rel~="prev"], [rel~="next"], [rel~="first"], [rel~="last"], [rel~="up"])[rel~="external"] { color: red } (做了一個 demo[3] 給大家玩玩看) 雖然是縮短一點,不過看起來的確是很難看。不過同樣是解決樣式重複的問題,我 覺得最後不會兩個提案都用。另外就是你的提案會讓 [rel~="a b"] 跟 [rel="a b"] 走不同的 codepath,有種不協調的感覺。看看之後會怎麼樣吧。 [2] https://developer.mozilla.org/en/CSS/%3A-moz-any [3] (需要FF4b) http://www.w3.org/People/kennyluck/Test/any-selector-attr 此致 Kenny, HTML5 中文興趣小組W3C連絡人 推特: http://twitter.com/kanghaolu 噗浪: http://www.plurk.com/kennyluck 新浪微博: http://t.sina.com.cn/1950042164 (還不是很有東西)
Received on Saturday, 12 March 2011 03:00:33 UTC