Я использую jQuery для позиционирования элементов в подменю.HTML выглядит так:
<div class="menu">
<div>
<a>Menu Option</a>
<div class="submenu">
<div><a>Submenu Option</a></div>
</div>
</div>
</div>
меню имеет положение: относительное, подменю имеет положение: абсолютное.IE8 и FF отображают подменю прямо под меню и выравнивают по левому краю.IE7 помещает подменю в линию с меню, сразу же после своего брата a.В нашем CSS мы используем "* margin-top: 40px", чтобы переместить меню в нужное место по вертикали.
В нашем javascript мы используем jquery для правильного выравнивания подменю по горизонтали.В FF и IE8 это может быть сделано через: $(this).css("margin-left", $(this).parent().position().left - 1);
В IE7 $(this).css("margin-left", -1 * ($(this).siblings('a').width() + 51));
правильно выровняет меню (51 - для заполнения, и «this» относится к div.submenu в обоих случаях.)
Я пытался изменить 2-й оператор, чтобы изменить css для «* margin-left» вместо «margin-left», но это, похоже, не работает.Как я могу сказать jquery использовать 2-ю строку для IE7 и 1-ю строку для всех других браузеров?
Разрешение:
Сначала я попробовал это сделать, поскольку метод jquery .browser устарел.Это не сработало.
<!-- [if IE 7]>
<script type="text/javascript">
$(function () {
$(".submenu").each(function () {
$(this).css("margin-left", -1 * ($(this).siblings('a').width() + 51));
});
});
</script>
<![endif]-->
Попытка снова с использованием $ .browser, и это успешно работает.Я не смог найти ничего подходящего для тестирования с использованием $ .support.