2012-05-04 2 views
0

Наведение указателя мыши приведет к срабатыванию мыши над эффектом на дочерней кнопке. Нажав на div (снаружи), кнопка также запускает кнопки onMouseDown.IE8 Дисплей: размер дочернего элемента

Пример код:

<DIV style="DISPLAY: table; background-color:#F5DFE8; width:500px;"> 
    <button onMouseDown="alert('hello')";">Button</button> 
</DIV> 

скрипка для тестирования самого: http://jsfiddle.net/N2c8t/15/

Been моего хвосту прибегая к помощи прочь, любому известному решению этой проблемы? Кроме того, что просто не использовать дисплей: таблица явно. :) Благодаря!

примечание: с меткой это с IE8 и IE9, так как это те браузеры, которые я пробовал до сих пор.

+0

Weird. Я посмотрел на свою скрипку с несколькими браузерами ... FF, Chrome и Safari на Mac и Chrome и FF на ПК не проявляли такого поведения. Я видел, что вы имеете в виду в IE8, хотя ... только думал, что я, возможно, пытался z-index, но это не помогло. Удачи. – redlena

ответ

0

Похоже, что IE обрабатывает button как display: table-row независимо от того, что фактическое значение display установлено (и таким образом заполняет весь div). Запуск интерференцию с другим элементом solved it (если это является жизнеспособным решением для вас):

<DIV style="DISPLAY: table; background-color:#F5DFE8; width:500px;"> 
    <span><button onMouseDown="alert('hello');">Button</button></span> 
</DIV> 

Но, пожалуй, еще лучше (менее навязчивым), сохраняя тот же оригинальный HTML и добавление псевдо-элемент к div также solved it:

div:before { 
    content: ''; 
    display: block; 
    width: 0; 
} 
+0

Оказывается, опция отображения в моем коде не нужна, поэтому удаление этого исправлено (для меня) hah. Вы правы, хотя, спасибо за ваш ответ! :-) – Simon