- From: Kang-Hao (Kenny) Lu(吕康豪) <lvkanghao@genomics.cn>
- Date: Fri, 27 Mar 2015 07:37:10 +0800
- To: W3C HTML5 中文興趣小組 <public-html-ig-zh@w3.org>
昨天兴趣小组电话会议 Bobby 提到了很有意思的《CSS 圆角屏幕》[1]提案,用来处 理屏幕是圆的或是有圆角的。 但是比起 CSS 的问题,其实对于圆形屏幕我反而比较在意锁屏的问题。对于完全 圆形而不是圆角方形的屏幕,感觉一个比较有趣的地方是他可以显示 360 度上任 何一个角度,而不只是方形的 0、90、180、270 四个角度。 普及一下 [Screen Orientation] 规范[2],在他的模型里面的 “锁屏” 意思是让 屏幕的显示角度限制在某个角度 **集合** 里,比如说 lock("portrait") 是竖的 两个角度或是一个(取决于系统允许不允许正反两边翻),lock("protrait- primary") 是一个竖的角度。另外,有一个特殊的值 "any",是指 0、90、180、 270 四个角度。请注意这里提 “集合” 的重要性。然后他说解锁的意思是 unlock() = lock(<default-orientation>) ,其中 <default-orientation> 也是系统决定,虽然我们都知道这里大部分系统 上都是 <default-orientation> = "any"。 圆形屏幕上应该怎么办呢?这里分成四个问题容易思考一点: 1. 圆形屏幕上的 <default-orientation> 到底该是四个角度还是 360 度全部? 这个既然规范已经说是系统决定了,剩下就是喜好问题了。貌似 Apple Watch 没 有圆形屏幕,只有圆角的,可惜了,不能作为参考。 2. 假设在某圆形显示上 <default-orientation> 是所有角度,需要有一个值代表 四个角度(例:"four-sides")么? 如果 <default-orientation> 是所有角度,代表这个手表每转一点显示就跟着重 力动或是什么的,有一个值 "four-sides" 可能有帮助阅读,不会滑来滑去的? 3. 假设在某圆形显示上 <default-orientation> 是四个角度,需要有一个值代表 所有角度么(例:"360")么? 就可以 lock("360") 让画面跟随重力转动。虽然这个操作比较像是 “解锁” 不是 “锁屏”,可能 API 使用上感觉比较奇怪。或许变成 unlock("360") 比较好,最后 变成 lock/unlock 在吃一个参数的时候,是同一个函数。 4. "any" 在圆形显示上到底该指四个角度还是 360 度? 我是觉得干脆应该在现在的规范直接把这个值重新命名成 "four-sides" 之类的, 以免造成以后这里的问题,或是现在先那掉 "any" 算了,反正在大多数系统 <default-orientation> = "any" 的情况下,lock("any") 也没必要存在(因为跟 unlock() 一样),况且也跟 lock("360") 一样感觉很奇怪。 有比较好的 API 设计么? CSS 那边我反而没什么想法了,除了觉得[1] 'device-radius' 对于圆形显示需要 'device-radius < 50%' 什么的很麻烦,还不如 'device-shape: circle',不过 Apple Watch 也没圆形屏幕,只有圆角的,或许想多了。不过话说回来,如果圆角 比圆形常见很多,极坐标 'polar-*' 的新元素定位提案也没什么用了吧? 'border-boundary' 这种要多花时间想想,暂时没什么时间了。 之前 CSSWG 讨论这个规范的记录在[3],有兴趣的可以看看。 [1] http://dev.w3.org/csswg/css-round-display/ [2] https://w3c.github.io/screen-orientation/ [3] https://lists.w3.org/Archives/Public/www-style/2015Mar/0313 以上 吕康豪 -- Software Engineer, Shenzhen, BGI
Received on Thursday, 26 March 2015 23:36:45 UTC