【问题标题】:space/gaps between divs on website when viewed on iPhone/iPad在 iPhone/iPad 上查看时网站上 div 之间的空间/间隙
【发布时间】:2011-04-27 14:43:42
【问题描述】:

在 iPhone 和 iPad 上查看时,我的网站无法正常显示。该网站(甚至还没有完成)是 www.lzkconcepts.com。

在我尝试过的每个桌面浏览器(safari、chrome、firefox、IE)上查看时,该网站都能正常显示,但是,在 iPhone/iPad 上,“内容”div 和标题之间有一个微小的间隙/空间页脚。我在页眉、内容和页脚 div 中使用背景图像来创建页面的轮廓。除了 div 之间的间隙,内容背景图像有时会“缩小”一点,使其与屏幕右侧的页眉和页脚不对齐。如果我放大,一切都完美排列。这是从 iPhone 上截取的屏幕截图...

http://s1139.photobucket.com/albums/n545/lhkimbrough/?action=view&current=7198e49b.jpg&evt=user_media_share

仔细查看右侧蓝色导航栏下方。

这是CSS(我知道它很粗糙,我只是在学习)

@charset "UTF-8";
body {
 margin: 0;
 padding: 0;
 color: #000;
 font-family: Arial, Helvetica, sans-serif;
 font-size: 100%;
 line-height: 1.4;
 background-color: #CCC;
}
.TableAppName {
 color: #007EB4;
}

/* ~~ Element/tag selectors ~~ */
ul, ol, dl { /* Due to variations between browsers, it's best practices to zero padding and margin on lists. For consistency, you can either specify the amounts you want here, or on the list items (LI, DT, DD) they contain. Remember that what you do here will cascade to the .nav list unless you write a more specific selector. */
 padding: 0;
 margin: 0;
}
h1, h2, h3, h4, h5, h6, p {
 margin-top: 0;  /* removing the top margin gets around an issue where margins can escape from their containing div. The remaining bottom margin will hold it away from any elements that follow. */
 padding-right: 15px;
 padding-left: 15px; /* adding the padding to the sides of the elements within the divs, instead of the divs themselves, gets rid of any box model math. A nested div with side padding can also be used as an alternate method. */
}
a img { /* this selector removes the default blue border displayed in some browsers around an image when it is surrounded by a link */
 border: none;
}
/* ~~ Styling for your site's links must remain in this order - including the group of selectors that create the hover effect. ~~ */
a:link {
 color: #42413C;
 text-decoration: underline; /* unless you style your links to look extremely unique, it's best to provide underlines for quick visual identification */
}
a:visited {
 color: #6E6C64;
 text-decoration: underline;
}
#h-navbar {
 font-size: 95%;
 background-color: #CCC;
 background-image: url(images/navBarBlue.png);
 background-repeat: no-repeat;
 text-align: right;
 padding-right: 20px;
 color: #FFF;
 height: 39px;
 padding-top: 6px;
}
a:hover, a:active, a:focus { /* this group of selectors will give a keyboard navigator the same hover experience as the person using a mouse. */
 text-decoration: none;
}

/* ~~ this fixed width container surrounds the other divs ~~ */
.container {
 width: 874px; /* the auto value on the sides, coupled with the width, centers the layout */
 margin-top: 0;
 margin-right: auto;
 margin-bottom: 0;
 margin-left: auto;
 background-color: #CCC;
}

/* ~~ the header is not given a width. It will extend the full width of your layout. It contains an image placeholder that should be replaced with your own linked logo ~~ */
.header {
 background-color: #CCC;
 background-image: url(images/BannerFadedBlueAndOrangeText.png);
 background-repeat: no-repeat;
 height: 165px;
}

/* ~~ This is the layout information. ~~ 

1) Padding is only placed on the top and/or bottom of the div. The elements within this div have padding on their sides. This saves you from any "box model math". Keep in mind, if you add any side padding or border to the div itself, it will be added to the width you define to create the *total* width. You may also choose to remove the padding on the element in the div and place a second div within it with no width and the padding necessary for your design.

*/

.content {
 background-color: #CCC;
 background-image: url(images/contentFadedDark4.png);
 background-repeat: repeat-y;
 padding-left: 15px;
}
.contentBottom {
 padding: 0px;
 margin: 0px;
}

/* ~~ The footer ~~ */
.footer {
 background-color: #CCC;
 background-image: url(images/FooterFadedDark.png);
 background-repeat: no-repeat;
 text-align: right;
 font-size: 80%;
}

/* ~~ miscellaneous float/clear classes ~~ */
.fltrt {  /* this class can be used to float an element right in your page. The floated element must precede the element it should be next to on the page. */
 float: right;
 margin-left: 8px;
}
.fltlft { /* this class can be used to float an element left in your page. The floated element must precede the element it should be next to on the page. */
 float: left;
 margin-right: 8px;
}
.clearfloat { /* this class can be placed on a <br /> or empty div as the final element following the last floated div (within the #container) if the #footer is removed or taken out of the #container */
 clear:both;
 height:0;
 font-size: 1px;
 line-height: 0px;
}
#h-navbar a, #h-navbar a:visited {
 text-decoration: none;
 color: #FFF;
}
#h-navbar a:hover {
 color: #ea6828;
}
.footer p {
 color: #0075A7;
}
.content h1 {
 color: #0074A9;
 font-weight: normal;
 font-size: 200%;
 font-style: normal;
 padding-top: 15px;
 padding-left: 23px;
}
.graytext {
 color: #333;
}

这是 HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><!-- InstanceBegin template="/Templates/LZKConcepts_Template.dwt" codeOutsideHTMLIsLocked="false" -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<!-- InstanceBeginEditable name="doctitle" -->
<title>LZK Concepts</title>
<!-- InstanceEndEditable -->
<link href="LZKConcepts_styles.css" rel="stylesheet" type="text/css" />
<!-- InstanceBeginEditable name="head" -->
<!-- InstanceEndEditable -->
</head>

<body>

<div class="container">
  <div class="header"><!-- end .header --></div>
  <div id="h-navbar"><a href="index.html"> Home </a> | <a href="#"> QuickGrader </a> | <a href="#"> Wish On A Star </a> | <a href="AboutUs.html"> About Us </a> | <a href="#"> Contact Us </a></div>
  <!-- InstanceBeginEditable name="MainContent" -->
  <div class="content">
    <h1>
      <!-- end .content -->
    iPhone Apps</h1>
    <table width="844" border="0">
      <tr>
        <td width="160" rowspan="2" valign="top"><a href="#"><img src="images/QuickGraderIconReflected140.png" alt="QuickGrader" width="120" height="154" hspace="20" /></a></td>
        <td width="482" class="TableAppName">QuickGrader</td>
        <td width="188">&nbsp;</td>
      </tr>
      <tr>
        <td height="127" valign="top" class="graytext">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris neque quam, facilisis sed iaculis tempor, iaculis vitae purus. Mauris eros lacus, commodo ut feugiat vel, sollicitudin et elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur urna diam, iaculis ut commodo molestie, congue non lacus. </td>
        <td align="right" valign="top"><br />
        <a href="http://itunes.apple.com/app/quickgrader/id392532471?mt=8" target="_new"><img src="images/App_Store_Badge.png" alt="AppStore" width="155" height="54" hspace="18" vspace="0" align="right" /></a></td>
      </tr>
    </table>
    <p>&nbsp;</p>
    <table width="844" border="0">
      <tr>
        <td width="160" rowspan="2" valign="top"><a href="#"><img src="images/Wish On A Star Reflected.png" alt="QuickGrader" width="120" height="154" hspace="20" /></a></td>
        <td width="482" class="TableAppName">Wish On A Star</td>
        <td width="188">&nbsp;</td>
      </tr>
      <tr>
        <td height="130" valign="top">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris neque quam, facilisis sed iaculis tempor, iaculis vitae purus. Mauris eros lacus, commodo ut feugiat vel, sollicitudin et elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur urna diam, iaculis ut commodo molestie, congue non lacus. </td>
        <td align="right" valign="top"><br />
          <a href="http://itunes.apple.com/app/wish-on-a-star/id366753945?mt=8" target="_blank"><img src="images/App_Store_Badge.png" alt="AppStore" width="155" height="54" hspace="18" align="right" /></a></td>
      </tr>
    </table>
    <p>&nbsp;</p>
    <table width="844" border="0">
      <tr>
        <td width="160" rowspan="2" valign="top"><a href="#"><img src="images/Wish On A Star Free Reflected.png" alt="QuickGrader" width="120" height="154" hspace="20" /></a></td>
        <td width="482" class="TableAppName">Wish On A Star Free</td>
        <td width="188">&nbsp;</td>
      </tr>
      <tr>
        <td height="130" valign="top">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris neque quam, facilisis sed iaculis tempor, iaculis vitae purus. Mauris eros lacus, commodo ut feugiat vel, sollicitudin et elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur urna diam, iaculis ut commodo molestie, congue non lacus. </td>
        <td align="right" valign="top"><br />
          <a href="http://itunes.apple.com/app/wish-on-a-star-free/id388860624?mt=8"><img src="images/App_Store_Badge.png" alt="AppStore" width="155" height="54" hspace="18" align="right" /></a></td>
      </tr>
    </table>
  </div>
  <!-- InstanceEndEditable -->
  <div class="footer">
    <p><br />
<br />
      <br />
    Copyright © 2010, LZK Concepts. All rights reserved.</p>
</div>
  <!-- end .container --></div>
</body>
<!-- InstanceEnd --></html>

有人知道为什么 iPhone 和 iPad 会这样渲染页面吗?

【问题讨论】:

  • +1 这个问题 - 不仅在 iPad 上看到了这一点,而且在其他进行整页缩放的浏览器上也看到了这一点。在我的 iPad 上看到 ING 银行网站首页的效果后,碰巧搜索了这个。

标签: iphone html css


【解决方案1】:

用途:

meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;"

当网站在平板电脑或其他设备上显示时。那应该消除您看到的像素差异。如今,网站的设计应具有语义可扩展性,以实现最大程度的跨设备访问。

就我而言,如果绝对需要解决这个问题,我通常会构建一个 php 设备检测器。

【讨论】:

    【解决方案2】:

    在 iPad 上,当网站以低于 100% 的比例查看时,有时会出现一些伪像。一个特别明显:div 之间的 1 像素线,就像在您的网站上一样,在菜单下。

    我找到的解决方案是在 div 之间添加一个“margin:-1px”。 Divs 背景与 1 个像素重叠,如果进行了相应的切片,它对于经典浏览器是不可见的,并且在 iPad 上更正了问题。

    【讨论】:

    • 很遗憾,我们必须对浏览器使用所有这些 hack :-( 标准需要得到更多尊重。
    • 我完全同意你的看法!但另一方面,如果不时不时出现一些奇怪的东西,缩放网页一定不是那么简单......
    • plang 的解决方法很好,它也为我解决了这个问题!只是想知道是否还有另一种不那么“hack-y”的方法来避免“缩放伪像”
    • 这样做的问题是,如果您的 div 的不透明度设置为
    • 谢谢,这是一个非常简单的解决方案,为我节省了大量时间并解决了问题。
    猜你喜欢
    • 1970-01-01
    • 2013-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-20
    相关资源
    最近更新 更多