H5页面在iPhoneX显示的适配题目-
1. iPhoneX的介绍
屏幕尺寸
我们熟悉的iPhone系列开发尺寸概要如下:
如上图所示 在iOS 11中的WebKit包括了一个新的CSS函数constant(),以及一组四个预定义的常量:safe-area-inset-left,safe-area-inset-right,safe-area-inset-top和safe-area-inset-bottom。当合并一起运用时,允许样式援用每个方面的平安区域的大小。
3.1当我们设定viewport-fit:contain,也就是默许的时候时;设定safe-area-inset-left,safe-area-inset-right,safe-area-inset-top和safe-area-inset-bottom等参数时不起作用的。
3.2当我们设定viewport-fit:cover时:设定如下
body { padding-top: constant(safe-area-inset-top); //为导航栏+状态栏的高度 88px padding-left: constant(safe-area-inset-left); //要是未竖屏时为0 padding-right: constant(safe-area-inset-right); //要是未竖屏时为0 padding-bottom: constant(safe-area-inset-bottom);//为底下圆弧的高度 34px }
4. iPhoneX的适配---高度统计
viewport-fit:cover + 导航栏
5.iPhoneX的适配---媒体查询
注意这里采纳的是690px(safe area高度),不是812px;
@media only screen and (width: 375px) and (height: 690px){ body { background: blue; } }
6.苹果X viewport-fit
题目总结
1.对于苹果X 页面运用了渐变色时;要是viewport-fit:cover;
1.1在设定了配景色单色和渐变色的区别,要是是单色时会添补整个屏幕,要是设定了渐变色 那么只会更加子元素的高度去渲染;并且页面的高度只要690px高度,上面运用了padding-top:88px;
body牢固为:
this is subElement
1.单色时:
* { padding: 0; margin: 0; } body { background:green; padding-top: constant(safe-area-inset-top); //88px /*padding-left: constant(safe-area-inset-left);*/ /*padding-right: constant(safe-area-inset-right);*/ /*padding-bottom: constant(safe-area-inset-bottom);*/ }
2.渐变色
* { padding: 0; margin: 0; } body { background:-webkit-gradient(linear, 0 0, 0 bottom, from(#ffd54f), to(#ffaa22)); padding-top: constant(safe-area-inset-top); //88px /*padding-left: constant(safe-area-inset-left);*/ /*padding-right: constant(safe-area-inset-right);*/ /*padding-bottom: constant(safe-area-inset-bottom);*/ }
解决运用渐变色 照旧 添补整个屏幕的办法;CSS设定如下
Designing Websites for iPhone X: Respecting the safe areas this is subElement
2.页面元素运用了牢固定位的适配即:{position:fixed;}
2.1 子元素页面牢固在底部时;运用viewport-fit:contain时;可以看到bottom:0时只会显示在平安区域内;
Designing Websites for iPhone X: Respecting the safe areas this is top
this is bottom
2.1 子元素页面牢固在底部时;运用viewport-fit:cover时;可以看到bottom:0时只会显示在平安区域内;
图1:
* { padding: 0; margin: 0; } html,body { height: 100%; } body { background: grey; padding-top: constant(safe-area-inset-top); padding-left: constant(safe-area-inset-left); padding-right: constant(safe-area-inset-right); padding-bottom: constant(safe-area-inset-bottom); } .top { width: 100%; height: 44px; background: purple; } .bottom { position: fixed; bottom: 0; left: 0; right: 0; height: 44px; color: black; background: green; }
图2:
* { padding: 0; margin: 0; } html,body { height: 100%; } body { background: grey; padding-top: constant(safe-area-inset-top); padding-left: constant(safe-area-inset-left); padding-right: constant(safe-area-inset-right); /*padding-bottom: constant(safe-area-inset-bottom);*/ } .top { width: 100%; height: 44px; background: purple; } .bottom { position: fixed; bottom: 0; left: 0; right: 0; height: 44px; color: black; background: green; }
2.3 对于alertView弹框 遮罩层的解决方案
alertView 打赏
- 上一篇:HTML5新见识-
- 下一篇:挪移端h5轮播插件swipe实例详解-