2013-04-19 6 views
1

Вот мой код. Я сделал это - когда я навеваю табличную ячейку, тогда ее фоновое изображение изменилось, это было легко. Но я хотел бы сделать это, когда я нахожу ячейку 5 с классом = «вниз» в первой таблице, а второй атрибут отображения таблицы изменяется от ни одного к блоку. . Я искал это, и я закончил со всем этим кодом, и это не так, т работы. Мне нужно использовать чистый CSS без JavaScript. Где проблема и что я делал неправильно?Css hover не работает

HTML

<table border="0" class="table"> 
    <tr> 
     <td>1</td> 

     <td>2</td> 

     <td>3</td> 

     <td>4</td> 

     <td class="down">5</td> 
    </tr> 
    </table> 

    <table border="0" class="table2"> 
    <tr> 
     <td>row2</td> 
    </tr> 

    <tr> 
     <td>row3</td> 
    </tr> 
    </table> 

CSS

.table 
{ 
    left:200px; 
    position:absolute; 
} 

td 
{ 
    background-image:url(poga1.png); 
    height:70px; 
    width:100px; 
} 

td:hover 
{ 
    -webkit-transition:1s; 
    background-image:url(poga2.png); 
} 

.table2 
{ 
    display:none; 
    left:616px; 
    position:absolute; 
    top:77px; 
} 

.down:hover .table2 
{ 
    display:block; 
} 
+0

Вы не можете сделать это с помощью CSS. – Musa

+0

ну можно с css, если у вас есть таблица 2 внутри ячейки 5 – Huangism

+0

Плохо, есть ли способ сделать что-то подобное? – jjanko3

ответ

0

Вы не можете сделать это с помощью CSS, если Table2 не является дочерним элементом таблицы 1. Это можно сделать очень легко с помощью JavaScript (w/jQuery в этом случае). Проверьте мой пример здесь:

http://jsfiddle.net/Pb8dw/1/

$(document).ready(function() { 
    $(".down").mouseover(function(){ 
     $(".table2").show(); 
    }); 

    $(".down").mouseout(function(){ 
     $(".table2").hide(); 
    }); 
}); 

Это блок кода, который делает скрыть/показать на парении. Я позволил вам обновить исходный код, чтобы его было легче увидеть.

Update: Если вы абсолютно положительно, должны были сделать это без JavaScript, вот как это было бы вниз с помощью только CSS и HTML:

http://jsfiddle.net/Pb8dw/2/

+0

Правда, я обновил свой ответ, чтобы отразить столько же – LNendza

+0

Мы еще не узнали об этом в школе, поэтому я не могу использовать то, о чем я не узнал. – jjanko3

+0

И комментарий удален (также: я бы не сказал, что это было * вопиющее *, просто нужно было прояснить все). @ jjanko3: нет способа сделать это, используя CSS (за исключением особых ситуаций). –

0

.down:hover .table2 Линия ищет элемент с классом table2внутри элемента с классом down. Вы можете делать только то, что хотите, в чистом CSS, если ваши таблицы вложены. Вот как вы могли бы сделать то, что вы хотите с помощью JQuery:

$(document).ready(function() { 
    $('.down').hover(function() { 
     $('.table2').show(); 
    }, function() { 
     $('.table2').hide(); 
    }); 
}); 

Вот демо: http://jsfiddle.net/mchail/b6PKT/

я добавил границу на td элементов, так что легче увидеть, когда ваше событие парения должно вызвать.

+0

Maby Я могу сделать 5 разных таблиц с 1 строкой и 1 столбец, но 5-й с 3-мя строками, и когда я нахожу 5-ю таблицу 1-го ряда, ее показывают эти два других? – jjanko3

+0

Похоже, вы попытаетесь показать дополнительные элементы 'td', когда вы наведете над элементом root' table'. Это, вероятно, сработает. Похоже, вы пытаетесь создать вложенное выпадающее меню, которое чаще всего выполняется с использованием 'ul' и 'li's. Если вы хотите сделать это в чистом CSS, вы должны посмотреть на пример здесь: (http://csswizardry.com/2011/02/creating-a-pure-css-dropdown-menu/), с демонстрацией: (http://csswizardry.com/demos/css-dropdown/).Нет никакого смысла использовать jQuery (или другую библиотеку javascript) для этого. – mchail

+0

Спасибо, я буду использовать тогда те ul и li, по крайней мере, попытаюсь их использовать. Благодарю. – jjanko3

Смежные вопросы