2009-09-22 6 views
2
#logo 
{ 
    position: relative; 
    width: 100px; 
    height: 18px; 
    float: right; 

    background-image: url('../images/logo_def.png'); 
    background-repeat: no-repeat; 
    background-position: 50% 50%; 
} 

#logo a:hover 
{ 
    background-image: url(../images/logo_h.png); 
} 

그것은 작동하지만 마우스가 위에있을 때 BG 이미지가 변경되지 않는 변경 가져가 동작과 배경 이미지, 왜?HTML, DIV, CSS -

답변

4

을 음, 즉각적인 문제는 #logo 내부에 <a> 요소가 없습니다 것입니다. 올바른 요소를 대상으로 두 번째 규칙을 변경하면이 문제를 "해결"합니다

#footer a:hover 
{ 
    background-image: url(../images/logo_h.png); 
} 

편집 :
으로는 의견에서 지적되었다

첫 번째 규칙의 스타일해야 A 요소에 이 적용되고 # 012o DIV는 아무런 목적이 없기 때문에 을 제공하므로 제거해야합니다.

이것은 혼란을 줄이고 향후 두통을 예방하는 데 도움이되므로 문제 해결에 도움이됩니다. (설명을 위해 @Julian에게 덕분에)

+1

Downvoters : 특별한 이유가 있습니까? 이렇게하면 HTML을 변경하지 않고 스타일을'' 태그에 적용 할 수 있습니다. – Donut

+0

익명 다운 voter가 아니라 제안 된 솔루션이 모범 사례를 따르지 않는다고 느낄 수도 있습니다. 나는 당신이 다음 번에 그들에게 말하도록 격려하기 위해 당신을 +1 할 것이다. :) – Mayo

+1

@Donut : 첫 번째 배경이 div에 적용되는 것을 제외하고. 이것은 끔찍한 디자인이며 나쁜 조언입니다. 첫 번째 규칙의 스타일은 A 요소에 적용되어야하며 #logo DIV는 아무 목적으로도 사용되지 않으므로 제거해야합니다.유감스럽게도 투표를 거부 하긴하지만 정말 빠르고 더러운 해결책이 너무 많아서 정말 어려움에 처하게됩니다. 그들은 실제 문제에 초점을 맞추지 않고 앞으로 OP에서 더 많은 질문을 약속합니다 (예 : 불필요한 DOM 혼란) . –

2

배경 이미지는 원래 #logo에 할당되어 있습니다. a : hover에서 ANCHOR의 배경 이미지가 변경됩니다. 따라서 일하는 것이 다음

#logo a 
{ 
    position: relative; 
    width: 100px; 
    height: 18px; 
    float: right; 

    background-image: url('../images/logo_def.png'); 
    background-repeat: no-repeat; 
    background-position: 50% 50%; 
} 

#logo a:hover 
{ 
    background-image: url(../images/logo_h.png); 
} 
+0

다시 퍼가기! 빨리 입력해야합니다. – dnagirl

1

<a> 요소에 호버 이미지를 적용했습니다. 내부에 <a> 요소가 없으므로 div#logo입니다.

0

당신은 앵커 요소를 다음 사용하도록 사업부의 스타일을 할 수 a:hover :

<div id="blah"> 
<p> <a href="#"></a></p> 
</div> 

그런 다음 CSS

#blah a:hover { 
background-image: url(myImage.jpg); 
} 
0
당신이 내부 블록 레벨 요소를 넣어하지 않도록주의해야한다

앵커는 블록을 표시하도록 설정할 수있는 인라인 요소입니다. 올바른 계층 구조는 해당 CSS가있는 div#footer > a > span#logo과 같아야합니다.

0

onMouseOver 및 onMouseOut javascript 함수를 사용하는 것이 더 간단하지 않습니까?

<script type="text/javascript"> 
function divcolor(){ document.getElementById('div1').style.background='#FFDFA3'; } 
function divcolor2(){ document.getElementById('div1').style.background='#FFFFFF'; } 
</script> 

<div id="div1" onmouseover="divcolor();" onmouseout="divcolor2();">Hover ME and I will highlight for you :)</div> 

나는 배경색을 사용했지만 이미지는 동일해야합니다.