인프런 커뮤니티 질문&답변

한혜숙님의 프로필 이미지
한혜숙

작성한 질문수

HTML+CSS+JS 포트폴리오 실전 퍼블리싱(시즌1)

마우스 올리면 배경이미지 변경하기 with jQuery

overflow:hidden사용해야 없어지는 이유

작성

·

368

1

<div class="container">
    <ul class="navi">
      <li><a href="#none" data-text="ABOUT">ABOUT</a></li>
      <li><a href="#none" data-text="INSTRUCTOR">INSTRUCTOR</a></li>
      <li><a href="#none" data-text="CLASS">CLASS</a></li>
      <li><a href="#none" data-text="LOCATION">LOCATION</a></li>
    </ul>
  </div>
.navi li a{
  font-size: 4em;
  text-decoration: none;
  color:#fff;
  position:relative;
}
.navi li a:before{
  content : attr(data-text);
  position: absolute;
  color:yellowgreen;
  top:0;
  left:0;
  width:0;
  overflow:hidden;
}

위의 코드에서 왜 overflow:hidden을 주어야 비포에 width가 적용되는지 궁금합니다.

overflow:hidden을 주지않고 position:absolute만 있을때 absolute는 요소를 inline block으로 바뀐다고 알고 있는데 F12개발자도구에서는

before가 inline요소라고 나오는 이유도 궁금합니다.

제 독학길에 한줄기 빛이신 선생님 항상 감사합니다~!

 

답변 1

1

:before의 길이가 0~100%로 길어지는 동안 보이고 있는 부분을 가려주기 위해서 overflow:hidden 줍니다.
그래야 글자가 채워지는 효과를 낼 수 있습니다.

:before :after가 inline요소라고 나오는 이유는 없습니다. 그렇게 가상클래스 :before :after 태생이 정해져 있는 것 입니다.

한혜숙님의 프로필 이미지
한혜숙

작성한 질문수

질문하기