#html #css #internet-explorer-7 #internet-explorer-6
#HTML #css #internet-explorer-7 #internet-explorer-6
Вопрос:
Я должен изменить HTML-страницу, потому что меню не работает с IE6 / IE7 / IE8.
HTML-код :
<div id="menu">
<table>
<tr>
<td><a href="menu1.php">Menu 1</a></td>
<td>Menu 2
<ul>
<li><a href="submenu1-1.php">Sub-menu 1</a></li>
<li><a href="submenu1-2.php">Sub-menu 2</a></li>
<li><a href="submenu1-3.php">Sub-menu 3</a></li>
</ul>
</td>
<td><a href="menu3.php">Menu 3</a></td>
<td>Menu 4
<ul>
<li><a href="submenu3-1.php">Sub-menu 1</a></li>
<li><a href="submenu3-2.php">Sub-menu 2</a></li>
<li><a href="submenu3-3.php">Sub-menu 3</a></li>
</ul>
</td>
<td><a href="menu5.php">Menu 5</a></td>
<td>Menu 6
<ul>
<li><a href="submenu5-1.php">Sub-menu 1</a></li>
<li><a href="submenu5-2.php">Sub-menu 2</a></li>
<li><a href="submenu5-3.php">Sub-menu 3</a></li>
</ul>
</td>
<td><a href="disconnect.php">Menu 7</a></td>
</tr>
</table>
</div>
CSS-код :
#menu a, #menu li, #menu td{
color: black;
text-decoration: none;
}
#menu a:hover{
color: black;
}
#menu ul {
list-style-type: square;
text-align:left;
}
#menu table{
width: 100%;
height:40px;
}
#menu td{
border-right: 2px solid black;
padding-right:5px;
}
#menu td ul{
position:absolute;
left: -999em;
margin-top:0px;
border: 2px outset black;
background: white;
}
#menu td:hover ul{
left: auto;
}
Синтаксис с ‘td’ и ‘ul’ кажется мне немного странным. Есть ли какие-либо советы по восстановлению совместимости со старыми версиями браузеров Microsoft?
Спасибо!
Комментарии:
1. Почему вы используете таблицы? И почему вы не говорите нам, что не так? ‘Не работает’ — это немного абстрактно.
Ответ №1:
#menu td:hover ul
будет работать в IE7 , если ваша страница находится в стандартном режиме.
Чтобы ваша страница использовала стандартный режим, добавьте соответствующий doctype в самую первую строку, например:
<!DOCTYPE html>
К сожалению, это не исправит IE6, поскольку эта версия поддерживает только :hover
on a
элементы.
Чтобы исправить IE6 (и другие версии IE, если вы не можете добавить doctype и ваша страница должна оставаться в режиме Quirks), вы должны использовать это исправление JavaScript:
http://peterned.home.xs4all.nl/csshover.html
Большинство современных браузеров поддерживают селектор :hover для любого HTML-элемента. Это здорово, потому что позволяет, например, применять эффект наведения курсора мыши к строкам таблицы, используя только CSS. Однако IE имеет неустойчивую поддержку: в лучшем случае, наведите курсор, в зависимости от конкретной версии, используемой вашим посетителем.
Whatever: hover — это небольшой скрипт, который автоматически исправляет:hover, : active и:focus для настроек IE6, IE7 и IE8, позволяя вам использовать их так же, как в любом другом браузере.