2011-12-30 2 views
1

Я разрабатываю html-страницу со строгим doctype, и на моей странице есть элемент формы.css hover on elements issue in IE

Что я хочу сделать, это изменить цвет фона ввода, когда мышь касается моей формы. Я сделал это с помощью css: hover selector в теге формы, но проблема в том, что IE понимает только курсор на теге «a»!

Я гугл моей проблемы и то, что я нашел это:

  • используя Htc файл;
  • с помощью javascript для создания класса наведения на элементах;
  • создание большого тега «a» и поместить в него все элементы;

, но я не хочу делать какие-либо из этих решений!

Нет ли лучшего способа устранить эту проблему в IE?

Мой HTML код:

<form id="footer-search-form" title="Search" action="#action"> 
    <fieldset> 
     <input type="text" class="footer-search-input" id="q" name="Search"></input> 
     <input type="button" class="footer-search-button" title="Search" value="Search"></input> 
    </fieldset> 
</form> 

Мой CSS код:

#footer-search-form:hover .footer-search-button { background-color: #fff; } 
#footer-search-form:hover .footer-search-input { background-color: #fff; } 

Update: и после нескольких часов поисков я сделал это с помощью JS:

onmouseover="this.setAttribute(document.all?'className':'class','footer-search-hovered');" onmouseout="this.removeAttribute(document.all?'className':'class','footer-search-hovered');"

и

.footer-search-hovered .footer-search-input, .footer-search-hovered .footer-search-button { background-color: #fff !important; } /* For IE6 compatibility */ 

Я ненавижу его, но мне кажется, что нет лучшего способа ...

+1

Почему вы не хотите использовать исправление '.htc'? http://peterned.home.xs4all.nl/csshover.html – thirtydot

+0

У меня есть плохой опыт с исправлениями .htc. большую часть времени они исправляют простую проблему, создавая еще одну сложную проблему! –

ответ

0

IE поддерживает :hover на любом элементе, так как IE8 (или даже IE7? Я не помню), который был выпущен более трех лет. По общему признанию, слишком много людей по-прежнему используют IE6 (в основном потому, что IE не имеет автообновления) - действительно нуждается в одном), но для чего-то такого же простого, как этот эстетический эффект, вам действительно не нужно беспокоиться о поддержке в старых реликвии.

+0

Моя проблема в IE6. Он работает в новых версиях IE. –

+0

Как я уже сказал, IE6 не поддерживается многими сайтами, как и должно быть. Если вы хотите поддерживать IE6, почему бы не пойти в полную длину и не заставить его работать в IE1? –

+0

Пожалуйста, перестаньте смеяться надо мной! Я ненавижу IE, время, которое мне приходится тратить на исправление ошибок в IE, слишком велико, чем время, которое я трачу на мой код. Мой босс заставил меня сделать его совместимым с IE6 из-за высокого уровня посетителей с этим глупым браузером! –

2

Вы действительно будете сталкиваться с проблемами if your users are using IE6. Большинство веб-разработчиков в настоящее время даже не утруждают себя поддержкой такого старого браузера, поэтому я бы не стал беспокоиться об этом.

+0

Конечно, если бы я собирался создать свою собственную веб-страницу, я бы полностью проигнорировал все версии Internet Explorer.Но, к сожалению, я вынужден создать эту страницу для работы со всеми браузерами, даже с IE6. –

+0

Я бы посоветовал, кто бы ни говорил вам развиваться в IE6 и рассказывать им [это действительно не стоит времени] (http://www.ie6countdown.com/). И об ответах на вопросы; не беспокойтесь, здесь вы идете: http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – Wex