- From: Kang-Hao (Kenny) Lu <kennyluck@w3.org>
- Date: Mon, 24 Oct 2011 09:48:14 +0800
- To: 中文HTML5同樂會ML <public-html-ig-zh@w3.org>
- CC: Gray Zhang <otakustay@gmail.com>
補充一點資訊。 以下談到的 CSS 裝置適配模組(原文 Device Adaptation,Adaptation 的翻譯源 自 Hax,歡迎母語為繁體中文的朋友想一個更好的翻譯)草案,基本上是用 CSS 的 @viewport 規則取代 <meta name="viewport" content="XXX"/> (其他的應用 留給別的朋友說明),由 Opera 提出的一個提案,W3C 上個月野遊 CSS 工作組發 表了這個提案的第一公開草案,不過總之最新版的提案請參考[1]。 [1] http://dev.w3.org/csswg/css-device-adapt/ (11/10/22 0:02), Kang-Hao (Kenny) Lu wrote: > 原文討論串:http://lists.w3.org/Archives/Public/www-style/2011Oct > /thread#msg652 > (若沒弄錯的話)以下 CSS 工作組的討論是說,Firefox Mobile 與 Android > Browser 支持「;」作為 <meta name=viewport> 的 content 裡的區隔字符,而 > Safari 與 Opera 只支援「,」。 > > 大家有什麼想法嗎?有用「;」的人要不要舉個手? 這裡指的是討論把 <meta name="viewport" content="XXX" /> 轉換成 CSS 的解 析演算法章節[2]裡的擬程式碼沒有提到「;」的這件事。 話說,跟據原文討論串,N9 Browser 好像也是只支援「,」。 [2] http://dev.w3.org/csswg/css-device-adapt/#parsing-algorithm (11/10/22 0:33), Gray Zhang wrote: > 不支持以分号作为分割符,分号应当作为“同一元组不同部分”的分割符,参考HTTP > ACCEPT头的定义,各元组之间使用逗号分割,同元组的Type和Parameter之间用分号分割。这种方式应当是前端界的一种共识,如果现在将分号作为分割,会对未来需要对单一元组引入第二部分时的语法设计产生制约…… 我也覺得灰大這個拿 HTTP 來比較的論述十分有道理,灰大後來在 HTML5 翻譯的 QQ 群也提到說 <meta> 有好幾個使用方式就是 HTTP 標頭(<meta http-equiv="content-type" /> 這些),所以為避免產生混亂,的確是應該禁止 在 <meta name="viewport" /> 上使用「;」。我是覺得未來不太可能在 meta-viewport 上引入第二部份的新語法,所以我主要是覺得這是一個前端知識的 學習問題,本來 A 跟 B 語法都可以的東西這種學習起來就比較麻煩一個,這也是 HTML5 捨棄了一些重複的元素(<strike>、<acronym>)的原因[3]。 總之我建議灰大把這個論述拿去 www-style 講了。 [3] http://www.w3.org/html/ig/zh/wiki/HTML5#.E5.85.A7.E5.AE.B9.E6.A8.A1.E5.9E.8B.E8.88.87.E5.B1.AC.E6.80.A7.E5.80.BC.E7.9A.84.E9.99.90.E5.88.B6 (「為了簡化語言造成的錯誤」那項) >> From: Rune Lillesveen <rune@opera.com><rune@opera.com> Organization: >> Opera Software ASA >> >> First, it's in a non-normative section, and we want UAs to move towards an >> @viewport implementation. That being said, it's there to suggest a mapping >> between viewport meta and @viewport in a transition phase. 目前 HTML5 規範裡面現在沒有定義使用者代理如何處理 meta-viewport,而 CSS 裝置適配模組講 meta 標籤的這個章節[4]目前也是沒有規範敘述(non- normative)的。我猜要標準化 meta-viewport 比較困難的主要原因是因為桌上瀏 覽器不支援這個(有錯請指正),不能完整定義所有使用者代理如何處理這個標 籤,再加上 Opera 認為大家未來都該用 @viewport。這裡有人反對這種說法並認 為 meta-viewport 應該標準化的嗎? 這裡的一種繞道的作法是不要求使用者代理一定要支持 meta-viewport,但是要求 「若使用者代理支持這個標籤,瀏覽器必須使用規範裡的轉換演算法」,因為標準 的常理是只能根據有規範敘述的章節寫測 試資料,而有測試資料比較容易強迫瀏 覽器之間達到兼容。我等等會去 www-style 問這個。 另外,W3C 從 HTML5 規範開始,出現了規範對使用者代理跟對文件的要求不一致 的現象,一般使用者代理還是會處理不合規範的內容,比如說,現在 meta-viewport 的解析演算法[3]是接受這種內容的: <meta name="viewport" content="width 這些是垃圾 = = = = device-width, user-scalable=1" /> (沒實證過,單純看規範的結果) 如果 meta-viewport 要標準的化的話,我想包括原來提這個議題的 Google 的人 都同意對文件的要求應該包含「不能使用『 ; 』」這一項,不過對使用者代理的 要求呢?灰大是認為 Android Browser 跟 Firefox Mobile 都要改正對嗎?我也 是比較支持這兩個瀏覽器要改,因為看起來少處理一個「;」的執行效率應該會高 出個一小點(非常小就是了),而且我對 Android Browser 引入「;」很不解... [4] http://dev.w3.org/csswg/css-device-adapt/#viewport-meta-element 話說,後來 Chromium 的人提出了包含 ebay.com, stackoverflow.com 等等 33 個有用「;」的行動網站(真不知道怎麼學來的),我倒也是有興趣知道現在中文 網站的情形,有人有資料嗎? 此致 呂 康豪(Kenny), 中文興趣小組W3C連絡人 Google+: https://plus.google.com/112088462407783855918/posts 新浪微博: http://t.sina.com.cn/1950042164
Received on Monday, 24 October 2011 01:48:43 UTC