- 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