2012-04-16 112 views
0

有關問題網頁的實時瀏覽到這裏:http://rcnhca.org.uk/sites/first_steps/health-safety-and-security/HTML/CSS:IE8填充/背景位置問題

問題1:如果你去那個鏈接和翻滾的下拉菜單導航和它的孩子,你會注意到我在mouseenter上的每個li上生成了一個星形背景圖像的動畫。但是您滾動它在IE8它第一次從li,儘管我指定background-position: -25px 50%;中間動畫,奇怪的是,一旦jQuery的內聯應用相同的設置,它開始按預期運行。

問題2:正如你可以在下面的圖片中看到,IE8 (這正常工作在IE7)被錯誤地呈現我的填充。我已經重新使用* {margin: 0; padding: 0;}所有margin和padding在core.css

padding error

的HTML標記這個導航條是:

<header class="one"> 
    <nav class="container_16 clearfix" id="breadcrumbs"> 
     <a href="http://rcnhca.org.uk/sites/first_steps" id="home"></a> 
     <ul id="parent"> 
      <li> 
       <a href="http://rcnhca.org.uk/sites/first_steps/communication/">Communication</a> 
       <ul class="child"> 
        <li><a href="http://rcnhca.org.uk/sites/first_steps/getting-started/">Getting started</a></li> 
        <li><a href="http://rcnhca.org.uk/sites/first_steps/health-safety-and-security/">Health, Safety and Security</a></li> 
        <li><a href="http://rcnhca.org.uk/sites/first_steps/personal-and-people-development/">Personal and people development </a></li> 
        <li><a href="http://rcnhca.org.uk/sites/first_steps/quality/">Quality</a></li> 
        <li><a href="http://rcnhca.org.uk/sites/first_steps/equality-diversity-and-rights/">Equality, diversity and rights </a></li> 
        <li><a href="http://rcnhca.org.uk/sites/first_steps/clinical-skills/">Clinical skills</a></li> 
        <li><a href="http://rcnhca.org.uk/sites/first_steps/additional-material/">Additional material</a></li> 
       </ul> 
      </li> 
      <li> 
       <a href="#">Select a topic</a> 
       <ul class="child"> 
        <li><a href="http://rcnhca.org.uk/sites/first_steps/communication/why-communication-is-important/">Why communication is important</a></li> 
        <li><a href="http://rcnhca.org.uk/sites/first_steps/communication/communication-methods/">Communication methods</a></li> 
        <li><a href="http://rcnhca.org.uk/sites/first_steps/communication/written-communication/">Barriers to communication</a></li> 
       </ul> 
      </li> 
     </ul> 
    </nav> 
</header> 

和CSS來引導:

header { 
    width: 100%; 
} 

header.one { 
    height: 50px; 
    background: #44a9c4; 
} 

header.two { 
    height: 45px; 
    background: #3393b5; 
} 


/* ============================================================================= 
    Breadcrumb navigation 
    ========================================================================== */ 

#breadcrumbs { 
    padding: 0 3px 3px 0; 
    background: #ffffff; 
    border: 0px solid; 
    border-left: #3a90a7 2px solid; 
    border-right: #3a90a7 2px solid; 
    border-bottom: #3a90a7 2px solid; 
    -webkit-border-bottom-left-radius: 5px; 
    -webkit-border-bottom-right-radius: 5px; 
    -moz-border-radius-bottomleft: 5px; 
    -moz-border-radius-bottomright: 5px; 
    border-bottom-left-radius: 5px; 
    border-bottom-right-radius: 5px; 
} 

#breadcrumbs #home{ 
    display: block; 
    height: 39px; 
    width: 55px; 
    float: left; 
    background-image: url(library/images/home_icon.png); 
    background-repeat: no-repeat; 
    background-position: center;  
    text-indent: -999em; 
} 

#breadcrumbs ul#parent { 
    height: 39px; 
    width: 905px; 
    float: right; 
    position: relative; 
    background: #f38630; 
    border: 0px solid; 
    -webkit-box-shadow: inset 0px -2px 0px 0px #cf7229; 
    -moz-box-shadow: inset 0px -2px 0px 0px #cf7229; 
    box-shadow: inset 0px -2px 0px 0px #cf7229; 
    -webkit-border-bottom-left-radius: 5px; 
    -webkit-border-bottom-right-radius: 5px; 
    -moz-border-radius-bottomleft: 5px; 
    -moz-border-radius-bottomright: 5px; 
    border-bottom-left-radius: 5px; 
    border-bottom-right-radius: 5px; 
} 

#breadcrumbs ul#parent li { 
    position: relative; 
    height: 39px; 
    float: left; 
    min-width: 1px; /* required to fix Opera bug */ 
    padding: 0 47px 0 15px; 
    background-image: url(library/images/breadcrumb_seperator.png); 
    background-repeat: no-repeat; 
    background-position: right; 
    line-height: 39px; 
} 

#breadcrumbs ul#parent li a { 
    display: block; 
    height: 42px; 
    font-size: 0.938em; 
    font-weight:900; 
    letter-spacing: 0.01em; 
    color: #ffffff; 
    text-decoration: none; 
    text-shadow: 0px 2px 0px #cf7229; 
} 

#breadcrumbs ul li a:visited { 
    color: #ffffff; 
} 
#breadcrumbs ul#parent li:first-child ul { 
    left: -5px; 
} 
#breadcrumbs ul#parent li ul { 
    position: absolute; 
    z-index: 1; 
    left: -28px; 
    top: 42px; 
    background: #ffffff; 
    border-left: #3a90a7 2px solid; 
    border-right: #3a90a7 2px solid; 
    border-bottom: #3a90a7 2px solid; 
    -webkit-border-bottom-left-radius: 5px; 
    -webkit-border-bottom-right-radius: 5px; 
    -moz-border-radius-bottomleft: 5px; 
    -moz-border-radius-bottomright: 5px; 
    border-bottom-left-radius: 5px; 
    border-bottom-right-radius: 5px; 
} 

.js #breadcrumbs ul#parent li ul { 
    display:none; 
} 

.no-js #breadcrumbs ul#parent li ul { 
    left: -999em; 
} 

#breadcrumbs ul#parent li ul li { 
    float: none; 
    height: 26px; 
    margin: 0 3px 3px 3px; 
    padding: 0 15px; 
    background-image: url(library/images/star-icon.png); 
    background-position: -25px center; 
    background-repeat: no-repeat; 
    background-color: #738793; 
    border-radius: 5px; 
    -moz-border-radius: 5px; 
    -webkit-border-radius: 5px; 
    line-height: 26px; 
    white-space: nowrap; 
} 

#breadcrumbs ul#parent li ul li a{ 
    color: #ffffff; 
    text-decoration: none; 
    text-shadow: none; 
    letter-spacing: 0.01em; 
    font-weight: 100; 
} 

#breadcrumbs ul#parent li ul li:hover{ 
    background-color: #3393b5; 
} 

.no-js #breadcrumbs ul#parent li ul li:hover{ 
    background-position: 6px center; 
    text-indent: 10px; 
} 

#breadcrumbs ul#parent li:hover ul { 
    z-index: 2; 
} 

.no-js #breadcrumbs ul#parent li:hover ul { 
    left: -5px; 
} 

我花了很多年試圖調試這個問題,並且無法弄清楚爲什麼會發生這種情況,如果任何人都可以照亮t他很重要會很好。 (注意:我使用HTML5SHIV在傳統瀏覽器中呈現HTML5元素)

回答

0

我沒有回答問題是什麼或爲什麼IE8採取這種方式,但我設法克服邊際問題,通過刪除浮動從#homeul#parent和相對絕對定位他們#breadcrumbs並給它一個明確的高度,像這樣:

#breadcrumbs { 
    height: 39px; 
    padding: 0 3px 3px 0; 
    background: #ffffff; 
    position: relative; 
    border: 0px solid; 
    border-left: #3a90a7 2px solid; 
    border-right: #3a90a7 2px solid; 
    border-bottom: #3a90a7 2px solid; 
    -webkit-border-bottom-left-radius: 5px; 
    -webkit-border-bottom-right-radius: 5px; 
    -moz-border-radius-bottomleft: 5px; 
    -moz-border-radius-bottomright: 5px; 
    border-bottom-left-radius: 5px; 
    border-bottom-right-radius: 5px; 
} 

#breadcrumbs #home{ 
    display: block; 
    position: absolute; 
    top: 0px; 
    left: 0px; 
    height: 39px; 
    width: 55px; 
    float: left; 
    background-image: url(library/images/home_icon.png); 
    background-repeat: no-repeat; 
    background-position: center;  
    text-indent: -999em; 
} 

#breadcrumbs ul#parent { 
    height: 39px; 
    width: 885px; 
    position: absolute; 
    right: 3px; 
    top: 0px; 
    background: #f38630; 
    margin: 0px; 
    -webkit-box-shadow: inset 0px -2px 0px 0px #cf7229; 
    -moz-box-shadow: inset 0px -2px 0px 0px #cf7229; 
    box-shadow: inset 0px -2px 0px 0px #cf7229; 
    -webkit-border-bottom-left-radius: 5px; 
    -webkit-border-bottom-right-radius: 5px; 
    -moz-border-radius-bottomleft: 5px; 
    -moz-border-radius-bottomright: 5px; 
    border-bottom-left-radius: 5px; 
    border-bottom-right-radius: 5px; 
} 

對於與背景圖像的問題,我在他們的內聯做了一個jQuery函數到後臺位置添加的元素已加載。

0

使用HTML5Shiv有它的IE 7-8問題負載。如果html5標籤是position:static(瀏覽器默認),那麼當使用javascript動畫/移動內容時,似乎IE有時無法重新繪製這些元素。大多數情況下,如果您能夠在這些標籤上放置position:relative,問題會消失,因爲IE似乎在相對定位的元素上正確觸發hasLayout