2010-10-19 79 views
10

我在使用iPhone和iPad查看我的網站時顯示不正常。網站(甚至不接近完成)是 www.lzkconcepts.com。在iPhone/iPad上查看時網站上divs之間的空白/間隙

但是,在iPhone/iPad上的每個桌面瀏覽器(safari,chrome,firefox,IE)上瀏覽時,網站都會顯示出正確的內容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

+1這個問題 - 已經看到這不只是在iPad上,但其他瀏覽器做全頁面縮放。在我的iPad上看到ING Bank網站首頁上的效果之後,發生了這種搜索。 – 2010-10-21 00:29:17

回答

13

在iPad上,當以100%以下的比例查看網站時,有時會出現一些文物。其中一個特別明顯:div之間的1像素線,就像您的網站上的菜單一樣。

我發現的解決方案是在div之間添加一個「margin:-1px」。 Div背景與1個像素重疊,並且如果相應地完成切片,則其對於經典瀏覽器不可見,並且糾正iPad上的問題。

+4

很遺憾,我們必須對瀏覽器使用所有這些黑客行爲:-(標準需要得到更多的尊重 – Bojangles 2010-12-02 10:41:05

+0

我完全同意你的看法但是另一方面,如果沒有獲得 – plang 2010-12-02 12:35:00

+0

來自plang的很好的解決方法,它解決了我的問題!只是想知道是否有另一個,更少的「黑客」方式來避免「縮放文物」 – pvandenberk 2012-01-02 12:36:27

3

用途:

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

時被顯示在平板電腦或其他設備中的網站。這應該擺脫你看到的像素差異。網站的設計應該在語義上可擴展,以實現最大的跨設備訪問。

至於我,我通常建立一個php設備檢測器,如果絕對需要工作。