Как вызвать hasLayout для этого li для IE 7 ошибка пробела - PullRequest
1 голос
/ 04 декабря 2011

Вот часть HTML:

<nav id="main-navigation">
<ul>
    <li><a href="#" target="_self">lorem ipsium lorem ipsium lorem</a></li>
    <li><a href="#" target="_self">lorem ipsium lorem lorem</a></li>
    <li><a href="#" target="_self">lorem ipsium lorem ipsium lorem</a></li>
    <li><a href="#" target="_self">lorem ipsium lorem</a></li>                     
</ul>
</nav>

Вот CSS:

#main-navigation ul li a {    
    display:block;
    font-size: .8em;
    background: lime url("http://www.hpp.moh.gov.sg/HPP/MungoBlobs/636/378/bullets_doctors.gif") no-repeat right center;
    border-top: 1px dotted #ccc;
    color:#000; 
    padding: 2px 0;
}

#main-navigation ul li a.last {
    border-bottom: 1px dotted #ccc;
}


#main-navigation ul li a:hover,
#main-navigation ul li a:focus,
#main-navigation ul li a:active{
    background: red url("http://www.hpp.moh.gov.sg/HPP/MungoBlobs/636/378/bullets_doctors.gif") no-repeat right center;
    color:#fff
}

Я не хочу изменять разметку html.

Если вы увидите это в хороших браузерах, а затем в IE 7, вы увидите, что элементы LI в IE7 имеют много пустого пространства между ними.

Я пытался применить высоту: 1px; на a на IE только файл, связанный с css. Не повезло.

Как правильно вызвать hasLayout, чтобы ошибка с пробелами исчезла?

Ответы [ 2 ]

1 голос
/ 04 декабря 2011

Решение:

HTML-часть:

 <!--[if lt IE 9]>
  <link rel="stylesheet" href="badbrowser.css"/>
<![endif]-->

CSS-часть badbrowser.css:

/* Fix for vertical list LI white space - hasLayout trigger */
#main-navigation li a {
    display:inline-block;
}

#main-navigation li a {
    display:block;
}
0 голосов
/ 20 июня 2012

Исправление - установить vertical-align: bottom; в элементах списка.

...