我正在使用flexbox将DIV居中放置在另一个DIV中。想一想需要时会在屏幕中央弹出的对话窗口。
它可以正常工作,但是如果对话框上方和下方的空间不完全相等,则剩余空间的40%会位于对话框上方和下方,而剩下的60%会看起来更好。之所以变得棘手,是因为对话框的高度随内部文本的数量而变化。
因此,例如,如果浏览器高度为1000 px,对话框窗口高度为400 px,我希望剩余的垂直空间(600 px)在对话框上方240 px,在对话框下方360 px。我可以用Javascript来做,但是我很好奇CSS是否有一些巧妙的方法。我尝试在#dialogBox DIV中添加底部边距,但是当对话框高度接近浏览器高度时,此方法不起作用。
#dialogBoxPanel
{
position:absolute;
display:flex;
align-items:center;
justify-content:center;
left:0px;
top:0px;
width:100%;
height:100%;
}
#dialogBox
{
width:350px;
}Run Code Online (Sandbox Code Playgroud)
<div id="dialogBoxPanel">
<div id="dialogBox">Text</div>
</div>Run Code Online (Sandbox Code Playgroud)
PWA 以持久方式存储用户生成的数据的最佳实践是什么?
我的应用程序允许用户生成最多 5 MB 的数据,这些数据需要在本地存储和访问,但也会定期备份,以防设备损坏/丢失或用户意外擦除数据。
如果我使用 FileSystemAPI 或 IndexedDB,是否可以利用一些自动备份系统?例如,“应用程序自动备份”可以在 Google Drive 上自动备份常规 Android 应用程序。如果有类似的 PWA 可用的东西那就太好了。
从用户体验上来说,FileSystemAPI 效果好吗?我读到,即使 PWA 安装到主屏幕,用户也必须在每个会话中授予权限,这会很不方便。
当用户从 iOS 开始屏幕(已安装的 PWA)启动我的 PWA 时,它会访问一个存储实例(IndexedDB、cookie 等)。当他通过 Safari 启动同一个 PWA 时,它会访问不同的存储实例。这是非常不方便的,因为从用户的角度来看,他打开同一个应用程序,但他看不到相同的数据。
当另一个 PWA 进行更改时,如何确保每个 PWA 的数据存储都得到更新?
让事情变得更复杂的是,我不能依赖互联网连接,因此我无法将数据与服务器同步。我不能强迫用户只从开始屏幕启动 PWA。而且我无法使用新的文件系统访问 API,因为它会通过文件访问提示来烦扰用户。