CSS 부모 자식 관련 질문드립니다.
본문
<div class="nav" >
<div class="menu"></div>
</div>
위와 같은 html 구조를 가질경우 menu:hover의 경우 상위요소인 nav의 background를 바꾸려고 합니다.
jquery를 사용하지 않고 css 만으로 어떻게 짜야 하나요?
답변 4
걍 동일하게 하시면 될 듯...
다만, 사이가 margin으로 벌어긴 구간에 허버 시엔 작동 안 하니, js 이용하셔야 할 듯...
약간의 편법을 쓰면 됩니다.
menu 클래스 안에
예)ov 클래스를 하나 더 생성하시고,
menu hover 시에 ov 가 display:block 되고,
position:absolute 이용해서 nav 위치로 이동시키고
background 로 덮으면 됩니다. z-index 로 우선순위 잡아주시구요!
이해되셨을까요? ^^
css로 상위를 찾아가는건 불가능한걸로알고있습니다.. > 부호로 자식은 내려가두요
댓글로는 SyntaxHighlight 적용이 안되서,
답글로 한번 더 남겨드려봅니다 ㅎㅎ 이렇게 한번 해보세요!
<style>
.nav {position:relative;}
.nav .menu {background:#000;}
.nav .menu ul:after {content:''; display:block; clear:both;}
.nav .menu .menu_li {float:left; width:200px; height:50px; line-height: 50px; text-align:center;}
.nav .menu .menu_li span {position:relative; z-index:3; color:#fff;}
.nav .menu .menu_li .bg {display:none; position:absolute; top:0; left:0; width:100%; height:100%; z-index:2;}
.nav .menu .menu_li:hover .bg {display:block; background:#ff0000;}
</style>
<div class="nav">
<div class="menu">
<ul>
<li class="menu_li">
<span>메뉴1</span>
<div class="bg"></div>
</li>
<li class="menu_li">
<span>메뉴2</span>
<div class="bg"></div>
</li>
<li class="menu_li">
<span>메뉴3</span>
<div class="bg"></div>
</li>
</ul>
</div>
</div>
답변을 작성하시기 전에 로그인 해주세요.