You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
header {
/* ... */
/* Status bar height on iOS 10 */
padding-top: 20px;
/* Status bar height on iOS 11+ */
padding-top: constant(safe-area-inset-top);
}
前言
iPhoneX还没有正式开售,目前网上对其适配就引发了不少争论和吐槽。下面我就来谈谈ios11的WebView Viewport 及iPhoneX刘海想到的。
ios11的WebView Viewport
为了适应iPhoneX的刘海,ios11顶部状态栏做了更改,更改之后,我们在iphone8中,假如设置一个固定元素,top: 0。就会出现如下情况。
解决方案:
iOS 11针对这种情况做了修复,viewport-fit三个值:
我们设置如下:
就可以解决上面的问题,iphone8如下:
iphoneX如下:
这样就出现了一个问题。iphoneX上面的刘海可能挡住了部分文字。
幸运的是,苹果公司增加了一种方法来将安全区域布局指南暴露给CSS。他们添加了一个类似于CSS变量的概念,称为CSS常量。想像这些像系统设置的CSS变量,不能被覆盖。它们可以通过CSS中的constant()函数来访问,该函数已被提交给CSS工作组进行标准化。
4个布局指南常数是:
可以如下写:
CSS常量示例
假设您有一个固定的位置标题栏,您的iOS 10的CSS目前看起来像这样:
要为iPhone X和其他iOS 11设备自动进行调整,您可以viewport-fit=cover向视口元标记添加一个选项,并更改CSS以引用常量:
iPhoneX刘海想到的
虽然iphoneX还没有开售,但是很早之前css3 shape属性,就可以模拟绕刘海排列,
关于shape,有篇文章推荐可以看一下:https://drafts.csswg.org/css-round-display/#descdef-media-shape
可以做手表适配,刘海适配等等。
有个shape-outside 属性如下:
CSS Shapes环绕iPhone X刘海方法
首先声明,这种方法只是意想,没人在真机上面操作,只是由iphoneX刘海想到的。对网上流行的,绕刘海动态布局做一个模拟。普及一下css3的shape-outside属性而已!动态绕刘海布局如下地址:http://weibo.com/tv/v/FlEaYuZb0?fid=1034:68a8ce4e62e7fba6e4b54e30e21dcc08
针对上面动态绕刘海布局,我们思路如下:
代码如下:
具体可以看一下张鑫旭大神的文章:http://www.zhangxinxu.com/wordpress/2017/09/css-shapes-outside-iphone-x-head/
他对这个实现用了2种思路,大家可以去借鉴一下!
今天文章就先写到这里。
The text was updated successfully, but these errors were encountered: