分號作為 meta-viewport 的區隔字符(Fwd: Re: [css-device-adapt] Accepting semi-colons as a separator for meta-viewport)

原文討論串:http://lists.w3.org/Archives/Public/www-style/2011Oct
/thread#msg652
(若沒弄錯的話)以下 CSS 工作組的討論是說,Firefox Mobile 與 Android
Browser 支持「;」作為 <meta name=viewport> 的 content 裡的區隔字符,而
Safari 與 Opera 只支援「,」。

大家有什麼想法嗎?有用「;」的人要不要舉個手?

Kenny

-------- Original Message --------
Subject:  Re: [css-device-adapt] Accepting semi-colons as a separator
for meta-viewport
Resent-Date:  Fri, 21 Oct 2011 09:15:46 +0000
Resent-From:  www-style@w3.org
Date:  Fri, 21 Oct 2011 11:14:52 +0200
From:  Rune Lillesveen <rune@opera.com>
Organization:  Opera Software ASA
To:  www-style@w3.org, "Peter Beverloo" <beverloo@google.com>



On Thu, 20 Oct 2011 19:12:01 +0200, Peter Beverloo <beverloo@google.com>  
wrote:

> The CSS Device Adapt specification defines a parsing algorithm[1] for
> the meta-element viewport content, which has been based on WebKit's
> implementation that shipped with iOS4. This algorithm only accepts
> commas as separators between properties.

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.

> In reality, web authors are using both commas as semi-colons. A wide
> range of websites, including CNN[2], Flickr[3] and Reddit[4] depend on
> this behavior, which has led at least Mozilla and Microsoft to
> implement it and, in case of the latter, write about it[5].

Yes, and they have to add some combination of scale properties to  
compensate for the fact that "width=device-width;" is the same as  
"width=0" in Safari and Opera (see comments for the mentioned sites below).

> I think the specification should adapt to reflect what authors are
> doing. While it's unfortunate that the divergence between commas and
> semi-colons happened, it's important for compatibility among mobile
> browsers.

Two alternative proposed changes:

1. Keep the algorithm as it is and mention that some implementations  
accept ';' as a separator in addition to ','.

2. Modify the algorithm to include ';' as a separator and say that it's  
based on the Safari implementation with the ';' added as a recognized  
separator.

> [1] http://dev.w3.org/csswg/css-device-adapt/#parsing-algorithm
> [2] http://m.cnn.com

Does not give me a viewport meta in Opera.

> [3] http://m.flickr.com

"width=device-width; initial-scale=1.0; maximum-scale=1.0;  
user-scalable=0;"

Works in Safari because the over-constraining scale values cause the width  
to end up at device-width anyway. This would not have worked in Safari or  
Opera: "width=device-width; user-scalable=0;".

> [4] http://www.reddit.com/.compact (or http://m.reddit.com/)

Same as for m.flickr.com.

> [5]  
> http://blogs.msdn.com/b/iemobile/archive/2010/11/22/the-ie-mobile-viewport-on-windows-phone-7.aspx

-- 
Rune Lillesveen
Layout Group Manager
Core Technology Department
Opera Software ASA

Received on Friday, 21 October 2011 16:02:59 UTC