我有一个看起来像这样的页面:
<html>
<body>
<div id="outer">
<div id="inner">
<img width="300" height="250" src="someimage.jpg"/>
</div>
</div>
</body>
</html>
CSS样式是这样的:
*{
margin:0px;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
-webkit-user-select: none;
-webkit-touch-callout: none;
}
body {
width:100%;
height:100%;
background:red;
overflow:hidden;
}
#outer {
position:absolute;
top:0px;
left:0px;
width:100%;
height:100%;
display:-webkit-box;
-webkit-box-orient:horizontal;
-webkit-box-pack:center;
-webkit-box-align:center;
overflow:hidden;
border: 1px solid blue;
}
我得到了很多奇怪的行为:
- 在 WebView 中初始加载网页时,我看到的只是一条蓝线。
inner
就像div中没有图像一样。 - 在第一次刷新时,WebView 会慢慢扩大到 100% 的高度。它慢慢地显露出来
someimage.jpg
。这就像outer
div 的动画,因为它慢慢意识到它需要占据整个屏幕。 - 在所有后续刷新中,不会发生展开动画。一切看起来都很好。
网页的前两次加载中发生了什么?
另一个奇怪的事情是,如果我没有那个蓝色边框,#2 和#3 就不会发生。也就是说,我只被一条蓝线困住,这实际上是折叠的蓝色边框div
。我不明白为什么我需要边框来inner
显示 div 的内容。
请注意,我对所有负载都使用相同的 WebView。也就是说,它只是在调用WebView#loadUrl
.