display는 요소를 삭제하거나 인라인 속성이나 블록 속성으로 바꿔 보이게 한다.
visibility는 해당 요소를 숨기거나 보이게 할 수 있다.
여기서 인라인 속성이란 좌우로 나열하여 보여주는 것이고
블록속성은 위 아래로 나열하여 보여준다.
display: [none / inline / block];
visibility: [hidden / visible];
위와 같이 사용한다.
none : 삭제
inline : 인라인 적용
block : 블록 적용
hidden : 숨기기
visible : 보이기
삭제와 숨기기는 별 차이 없어보이지만
삭제를 하면 공간을 차지 하지 않고 사라지지만
숨기기를 하면 빈 공간으로 남아있다.
예제를 확인해보자
<html> <head> <meta charset="UTF-8"> <title>요소 보이기/숨기기</title> <link rel="icon" href = "img/btn.png"> <style> li{ list-style-type: none; background-color: aqua; padding: 20px; display: inline; } a:hover{ /*해당 요소를 숨기므로 영역은 남아있음*/ visibility: hidden;/*[visible|hidden]*/ } #dis{ /*해당 요소를 지우므로 영역도 없어짐*/ /*지웠다 새로 그리는 느낌이기 때문에 조금 느려질 수 있다.*/ display: none;/*[none|inline|block]]*/ } </style> <!--스타일이 많으면 로딩이 느려질 수 있다.--> <!--아이디가 # 클래스가 . 태그는 p--> </head> <body> <ul> <a href="#"><li>HTML</li></a> <a href="#"><li>CSS</li></a> <a href="#"><li>JAVA-SCRIPT</li></a> <a href="#" id="dis"><li>J-Query</li></a> <a href="#"><li>BOOT STRAP</li></a> </ul> </body> </html>
인라인 속성이라 좌우로 나열되고 사진에는 안나왔지만 마우스가 CSS 부분에 있어 중간에 빈 부분이 있다.
그리고 J-Query도 나와야 하지만 display: none;이라 자리의 흔적조차 보이지 않는다.
display를 이용해서
https://qdgbjsdnb.tistory.com/134
https://qdgbjsdnb.tistory.com/142
두 예제를 합친 최종본의 본문을 보였다 숨겼다를 적용해보자
본문 내용은 조금 변경한다.
<html> <head> <meta charset="UTF-8"> <title>메인 Page</title> <link rel="icon" href = "img/btn.png"> <style> div.content{ background-image: url("img/bg.png"); background-repeat: no-repeat; background-position: right bottom; background-size: 200px; height: 60%; } dt{ font-weight: 600; font-size: 120%; } #dt1:hover{ /*해당 요소를 숨기므로 영역은 남아있음*/ visibility: hidden;/*[visible|hidden]*/ } #dt2:hover{ /*해당 요소를 숨기므로 영역은 남아있음*/ visibility: hidden;/*[visible|hidden]*/ } #dt3:hover{ /*해당 요소를 숨기므로 영역은 남아있음*/ visibility: hidden;/*[visible|hidden]*/ } #dt4:hover{ /*해당 요소를 숨기므로 영역은 남아있음*/ visibility: hidden;/*[visible|hidden]*/ } </style> </head> <body> <iframe src="exercise_03_navi.html" width="100%" height="51" frameborder="0" scrolling="no"></iframe> <h2>HTML</h2> <hr/> <div class="content"> <dl> <a href="#" id="dt1"> <dt> 정의 <dd> HTML은 Hyper Text Markup Language의 약자 입니다. </dd> </dt> </a> <a href="#" id="dt2"> <dt> 용도 <dd> 웹 어플리케이션의 뼈대를 만듭니다. </dd> </dt> </a> <a href="#" id="dt3"> <dt> 추가 학습1 <dd> CSS </dd> </dt> </a> <a href="#" id="dt4"> <dt> 추가 학습2 <dd> JAVA SCRIPT, J-Query </dd> </dt> </a> </dl> </div> <iframe src="exercise_03_footer.html" width="100%" frameborder="0" scrolling="no"></iframe> </body> </html>
결과는 다음과 같다.
첫번째 결과에 추가학습 2에 마우스를 올렸을 때 스크린샷이다.(마우스가 안찍힘)
추가로 예전에 했던 iframe 예제에서 메뉴의 HTML을 눌렀을 때
위의 페이지로 이동하게 하려면 다음과 같이 바꾸면 된다.
여기서 파란 네모친 부분에 HTML을 누르면
다음 화면으로
이 부분은 메뉴바에서 <a href="subpage01.html"><li>HTML</li></a>부분이 있는데
이렇게 입력했을 때는 iframe 내에서만 열려 이상하게 표시된다.
그러므로 대상을 부모 프레임으로 바꾸어 주어야 한다.
<a href="subpage01.html" target="_parent"><li>HTML</li></a> 타겟을 위와같이 입력하면 된다.
'HTML, CSS, JavaScript, jQuery > 03.CSS' 카테고리의 다른 글
[CSS]03-09.position(static, relative, absolute, fixed) 요소의 위치 속성 (0) | 2018.10.17 |
---|---|
[CSS]03-08.clear(float 정렬 줄 넘김) (0) | 2018.10.17 |
[CSS]03-06.배운 내용 활용해서 사이트의 메뉴 바 만들기 (0) | 2018.10.17 |
[CSS]03-05.float, link 정렬, 링크 속성, 이미지 밑줄 삭제 (0) | 2018.10.17 |
[CSS]03-03.background, 배경화면 (0) | 2018.10.17 |