css의 기능을 사용하여 화면의 어떤 요소를 화면상에 보이지 않게 할 때 보통 display:none
를 사용한다. 비슷한 기능으로 visibility:hidden
이 있는데 종종 이 두개의 차이점을 묻는 질문을 면접에서 물어볼 때가 있다.
이 두개의 차이는 무엇일까?
먼저 display:inline
나 display:block
속성을 사용해 보았다면 알겠지만 display
는 어떤 요소의 속성 자체를 변화시킨다.
다음은 div{width:200px;height:200px;}
를 준 <div>
이다. div는 디폴트로 display:block
속성이기 때문에 너비와 높이를 줄 수 있다.
다음과 같은 div 세 개가 나란히 있다고 했을 때 가운데 div에만 display:none
을 줘보자.
여기에 display:inline
을 주면 이렇게 된다. Inline 속성은 가지고 있는 콘텐츠 만큼의 영역만을 차지하기 때문에 이렇게 변하는 것이다.
이제 display:none
을 예상할 수 있다. 이 속성을 사용하면 콘텐츠가 마치 화면상에서 없는 것처럼 어떤 영역도 차지하지 않는다. (사라진 건 아니지만 안보인다.)
<div>어쩌구1</div>
<div style="display:none">어쩌구2</div>
<div>어쩌구3</div>
그럼 이렇게 된다.
그러면 중간 div에 visibility:hidden
을 주면 어떻게 될까?
display:block
속성은 여전히 가지고 있기 때문에 영역을 차지하면서, 사라진다.
참고로 visibility:visible
을 쓰면 다시 보인다.
'front-end > html&css' 카테고리의 다른 글
[Canvas 공부 2일차] 이미지 업로드 (0) | 2020.12.07 |
---|---|
[HTML5/Canvas] Canvas 공부 1일차 : x축 기본 애니메이션까지 (0) | 2020.12.06 |
[프론트엔드 개발자 면접 문제 02] 인라인 요소와 블록 요소 (0) | 2020.06.28 |
[css] 반응형 레이아웃을 위한 flexbox 알아보기 (브라우저별 flexbox 사용하기) (0) | 2020.04.23 |
[CSS/JS] 테이블 행열(가로세로) 위치 바꾸기 (0) | 2020.04.19 |
댓글