1

这是在 iOS 应用程序内的 UIWebView 中使用的。它在普通的 Mobile Safari 中似乎可以正常工作,但在嵌入式浏览器中却不行。

基本上,我有一些 HTML 和 CSS。HTML 元素四周都应用了一些填充,而 BODY 元素则没有。我期望看到的是被空白空间包围的 BODY 的内容。在桌面 Safari 中,这是可行的。但由于某种原因,在 Mobile Safari(嵌入式 Safari)中,HTML 标记的右填充被忽略,或者 BODY 标记可能被拉伸 - 不确定是哪个。请查看以下屏幕截图以进行说明:

在此处输入图像描述移动Safari

请注意在 Mobile Safari 示例中填充似乎是如何消失的。注意:这些只是我在 Photoshop 中模拟的图像,不是屏幕截图,但行为是相同的。

这是代码(当然是简化的):

<html>
<head>
<style>
html {
    background-color: #FFF;
    padding: 10px;
}
body {
    background-color: #0F0;
}
</style>
<body>
<div> ... some stuff ... </div>
</body>
</html>

为确保没有拉伸 BODY 标签的宽度,我尝试删除所有不需要的 HTML 和 CSS,基本上只保留一个带有绿色背景的空 BODY 标签,如图所示。这仍然有同样的问题。我还尝试在 BODY 标记周围放置边距,而不是在 HTML 标记中填充,但这不起作用。

编辑:我也尝试将框模型设置为边框框,如此处所述,但它不起作用。

有任何想法吗?

4

2 回答 2

3

从这个答案(它对我有用)

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    NSString *padding = @"document.body.style.margin='0';document.body.style.padding = '0'";
    [webView stringByEvaluatingJavaScriptFromString:padding];
}
于 2014-04-04T11:27:12.357 回答
1

原来 UIWebView 没有被初始化为任何尺寸。它根本没有被显式初始化,例如[[UIWebView alloc] initWithFrame:....]. 使用适当的尺寸显式初始化它解决了这个问题。

于 2012-12-18T06:28:04.500 回答