我尝试了很多方法来消除当移动Safari放大时出现的灰色细线,而我发现最简单、最灵活的方法是在这里:
本质上,你需要添加:
margin-bottom:-1px;
对于那些即将添加幽灵行边框的元素。
border-bottom: 1px transparent solid ;
margin-bottom: -1px ; /* for Mobile Safari dark line artifact */
在底部添加一个透明的边框似乎有所帮助,我的理解是它仍然尝试渲染边框,即使它是透明的,它也会强制重新渲染那些像素。不过这只是猜测,但这个解决方案似乎有效!
margin-top:-1px; /* this overlap the blamed ghost line */
padding-top:1px; /* this gave me my pixel back =) */
height: 0px;
padding-bottom: 57.2%;
-- 这是一个技巧,用于创建一个在不同宽度下保持其比例的元素,因为上/下填充从宽度派生百分比。在我的情况下,我通过将其更改为以下内容来修复它:
height: 1px;
padding-bottom: 57.2%;
重要提示:值得注意的是,我发现即使更改了样式,刷新有问题的页面也无法删除该行,即使隐藏了body*。为了每次它们回来时都能删除这些行,我不得不重新启动设备。
我曾经遇到过这个问题,桌面浏览器和iPad、iPhone上都会出现1像素的线。
这是我的旧CSS:
html,body {
background:url(images/bg.jpg);
height:100%;
background-color:#E8E8E8;
text-align:center;
text-decoration:none;
width:auto;
}
我的新CSS:
html,body {
background:url(images/bg.jpg);
height:100%;
text-align:center;
text-decoration:none;
width:auto;
}
移除 "background-color:" 已经解决了我所有网站的这个问题。
我在标题栏底部发现了一条灰色的线(仅适用于iPad),并通过以下方式进行了修复:
position:relative;
z-index:2;
我在我的主页上也遇到了同样的问题,但这些解决方案都没有起作用。在我的情况下,正如上面Johnny所说,背景显示在div层之间。最终,我用另一个div包裹了现有的层,并将其设置为与两个现有层相同的背景颜色,这样线条就不再可见了。如果其他方法都不起作用,可以试试这个。
由于这是由背景颜色触发的,所以只需使用相同背景颜色的1px gif背景图像并重复即可。如果您使用modernizr,则可以编写以下内容:
.touch .class-of-td {
background: transparent url(../_img/services/1px-bgfix.gif) repeat;
}
这也适用于显示为table-cell的元素以获得垂直对齐:middle。