2012-12-19 14 views
10

Funkcja przesunięcia kursora myszy nie działa z Google Chrome. Działa dobrze w Firefoksie i IE. Podczas przesuwania kursora dolna krawędź nie znika. Ale jeśli usunięcie border-collapse: collapse działa poprawnie. Dlaczego to? Jakiekolwiek rozwiązanie.Obramowanie css nie działa na zdarzenie mouseover w chrome?

css:

html, body{ 
margin: 0; 
padding: 0; 
} 

.table { 
    border-collapse: collapse; 
} 

.border { 
    border-style: solid; 
    border-width: 1px; 
    border-color: #000000; 
    background-color: #deecf9; 
    border-left: 0px; 
    border-right: 0px; 
} 

.border1 { 
    border-style: solid; 
    border-width: 1px; 
    border-color: #000000; 
    background-color: #deecf9; 
    border-left: 0px; 
    border-right: 0px; 
} 

.border2 { 
    border-style: solid; 
    border-width: 1px; 
    border-color: #000000; 
    background-color: #FFFFFF; 
    border-left: 0px; 
    border-right: 0px; 
    border-bottom: 0px; 
    padding: 1px; 
} 

Tabela:

<table width="1024" border="0" align="center" bgcolor="#FFFFFF" class="table"> 
    <tr> 
    <td height="9" colspan="4" class="border"></td> 
    </tr> 
    <tr> 
    <td class="border1" onmouseover="this.className='border2'" onmouseout="this.className='border1'">&nbsp;</td> 
    <td class="border1" onmouseover="this.className='border2'" onmouseout="this.className='border1'">&nbsp;</td> 
    <td class="border1" onmouseover="this.className='border2'" onmouseout="this.className='border1'">&nbsp;</td> 
    <td class="border1" onmouseover="this.className='border2'" onmouseout="this.className='border1'">&nbsp;</td> 
    </tr> 
</table> 
+2

Czy jest coś, co powstrzymuje cię przed dodaniem 'border1: hover {// border 2 class rules; } '? – Andy

+2

@ user1915224 działa dobrze dla mnie w Chrome w wersji 23.0 bez usuwania właściwości 'border-collapse' .. –

+0

Używam wersji 23.0.1271.97 m. To nie działa ze mną !!! – user1915224

Odpowiedz

6

Czy to tak: położyć przezroczystą ramkę na normalnych elementów państwowych. Po zastosowaniu: hover, rozmiar obramowania zmienia rozmiar, który zajmuje element.

np

.border1 
{ 
    border:1px solid #000000; 
    border-left:1px solid transparent; 
    border-right:1px solid transparent; 
    background-color: #FFFFFF; 
} 
.border1:hover 
{ 
    border:1px solid transparent; 
    border-top:1px solid #000000; 
    padding:1px; 
    background-color: #deecf9; 
} 

Twój HTML powinno być coś takiego:

<table width="1024" align="center" bgcolor="#FFFFFF" class="table"> 
<tr> 
    <td height="9" colspan="4" class="border"></td> 
</tr> 
<tr> 
    <td class="border1">&nbsp;</td> 
    <td class="border1">&nbsp;</td> 
    <td class="border1">&nbsp;</td> 
    <td class="border1">&nbsp;</td> 
</tr> 
</table> 

Nie trzeba pracować z mouseovers jako atrybut, wystarczy użyć CSS.

Edytuj: Zauważyłem, że używasz właściwości css border-collapse. Określa, czy obramowanie tabeli jest zwinięte w pojedynczą ramkę lub odłączone, tak jak w standardowym kodzie HTML. Spróbuj usunąć ten wiersz lub ustawić go jako "oddzielny", może to zadziała.

+0

Działa tylko dla pierwszego . – user1915224

+0

RTB nadal działa tylko po pierwszym Od drugiego , od dołu widoczne jest obramowanie u dołu. – user1915224

+1

Czy próbowałeś obramowania-bottom: 0; – ATOzTOA

Powiązane problemy