CSS 부모 자식 관련 질문드립니다.

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
CSS 부모 자식 관련 질문드립니다.

QA

CSS 부모 자식 관련 질문드립니다.

본문

<div class="nav" >

     <div class="menu"></div>

</div>

 

위와 같은 html 구조를 가질경우 menu:hover의 경우 상위요소인 nav의 background를 바꾸려고 합니다.

jquery를 사용하지 않고 css 만으로 어떻게 짜야 하나요?

 

이 질문에 댓글 쓰기 :

답변 4

걍 동일하게 하시면 될 듯...

다만, 사이가 margin으로 벌어긴 구간에 허버 시엔 작동 안 하니, js 이용하셔야 할 듯...

흠 .nav는 임시로 nav로 주긴 했지만 그 안에 다른 여러가지가 들어가서 .menu는 nav안의 일부라서 nav에 :hover를 주기엔 무리가 있네요 ㅠ js밖에 안된다면 그렇게 해야겠네요 ㅠ

약간의 편법을 쓰면 됩니다.

menu 클래스 안에

예)ov 클래스를 하나 더 생성하시고,

menu hover 시에 ov 가 display:block 되고,

position:absolute 이용해서 nav 위치로 이동시키고 

background 로 덮으면 됩니다. z-index 로 우선순위 잡아주시구요! 

이해되셨을까요? ^^


지금 한번 해봤습니다!
메뉴명을 감싼 후에 우선순위를 주었어야했는데,
위에 답은 제가 좀 성급했네요 ㅠㅠ

<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>

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>
 
답변을 작성하시기 전에 로그인 해주세요.
전체 126,530 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT