⛏️/HTML | CSS

[CSS] 6. display

defyuil 2023. 10. 24. 15:18

HTML

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>display</title>
<link href="style.css" rel="stylesheet">
<link href="display.css" rel="stylesheet">
</head>
<body>
<nav>
 <ul id="mn">
  <li><a href="#sec01">section01</a></li><li><a href="#sec02">section02</a></li>
  <li><a href="#sec03">section03</a></li>
  <li><a href="#sec04">section04</a></li>
 </ul>
</nav>

<h1>display - 요소가 화면에 나타나는 방식 지정</h1>
<ul>
 <li>display:inline; inline성격으로 지정</li>
 <li>display:block; block성격으로 지정</li>
 <li>display:inline-block;
  inline과 block을 합친 성격으로 지정</li>
 <li>display:none; 화면에서 사라짐</li> 
</ul>

<section id="sec01">
 <h2>1.display:inline;</h2>

 <div class="bl">block-div</div>
 <p class="bl">block-p</p>
 <aside class="bl">block-aside</aside> 
</section>

<section id="sec02">
 <h2>2. display:block;</h2>

 <span class="in">inline-span</span>
 <a class="in">inline-a</a>
 <b class="in">inline-b</b>
</section>

<section id="sec03">
 <h2>3.display:inline-block;</h2>

 <div>block-div</div>
 <p>block-p</p>
 <aside>block-aside</aside> 
 <span>inline-span</span>
 <a>inline-a</a>
 <b>inline-b</b>
</section>

<section id="sec04">
 <h2>4. display:none;</h2>

 <div>block-div</div>
 <p>block-p</p>
 <aside>block-aside</aside> 
 <span>inline-span</span>
 <b>inline-b</b> 
 <i>inline-i</i> 
</section>

<section id="sec05">
 <h2>5. visibility:hidden;</h2>

 <div>block-div</div>
 <p>block-p</p>
 <aside>block-aside</aside> 
 <span>inline-span</span>
 <b>inline-b</b> 
 <i>inline-i</i> 
</section>

<div id="dv">
 display:none;은 영역과 요소가 같이 사라짐.
        (레이아웃의 변화 있음)
 visibility:hidden;은 영역 남기고 요소만 사라짐.
        (레이아웃의 변화 없음)
</div>
  
 <p id="op">opacity:n; 요소의 불투명도 지정.
   0~1사이의 값으로 변경하며 
   0일 때 완전 투명, 1일 때 불투명       
 </p>     

 <div id="top">
  <a href="#">top</a>
 </div>

</body>
</html>

 

 

CSS

@charset "UTF-8";
/* 
 
 전체선택자 *로 불러와 css초기화(기본 여백을 모두 0으로) 
* {margin: 0; padding: 0;}

 */
 
 
 /* nav */
nav { /* border: 1px solid #00f; */
margin: 50px 0 80px 100px;}
 
#mn { /* border: 1px solid #f00; */
padding-left: 0;}

#mn>li {/* border: 1px solid #f00; */
display: inline-block /* 메뉴들을 가로로 배치 */;
margin-right: 20px;} 
 
#mn>li>a {
width: 150px; height: 40px;
display: block /* 크기 적용 위해 바꿈 */; 
/* = padding: 10px 50px; 내부여백으로도 
              요소 크기 키울 수 있음 */
text-decoration: none;
text-transform: capitalize;
text-align: center;
line-height: 40px /* 행간(줄간격)=높이값으로
       한 줄 글자를 수직 중앙정렬 */;
}

#mn>li>a:link, #mn>li>a:visited {
/* 
 1. 메뉴 링크의 평상시 상태지정
 a:link, a:visited (초기링크와 방문한링크) */	
	background-color:#5bf;
	color: #333;} 
/* 
 2. 메뉴 링크의 확인시 상태지정
 a:hover, a:active (마우스오버와 활성화링크)
[주의] 순서는 1.평상시 다음에  2.상태가 와야하며
   반드시 1.평상시가 있어야 함.
 */
#mn>li>a:hover, #mn>li>a:active {
	background-color: #333;
	color: #5bf;}
 
 
 /* 1.display:inline; */
/* #sec01>div, #sec01>p, #sec01>aside */
#sec01>.bl {border: 1px solid #f00;
 width: 150px;
 display: inline;}


 /* 2. display:block; */
#sec02>.in {border: 1px solid #00f;
 width: 200px; height: 50px; 
 margin: 20px;
 display:block; }


 /* 3.display:inline-block; */
#sec03>*:not(h2) {
 /* 부정선택자 A:not(B)는 B이외의 A를 지정 */
	border: 1px solid #0a0;
 	width: 150px; height: 50px;
 	margin: 20px;
 	display: inline-block;	}



#sec04, #sec05 {
display: inline-block;
width:45%; 
vertical-align:top/* inline요소들끼리의
 수직정렬 */; }

  /* 4.display:none; */
#sec04>*:not(h2) {border: 1px solid;}
	
#sec04>p {background-color: #afc;
height: 50px;
display: none;}

#sec04:hover>p {display: block;}

#sec04>span {background-color: #fce;
padding: 10px;
display: none;}

#sec04:hover>span {
display:inline; }

#sec04>b:hover {
 background-color: #000;
 color: #ff0; }

#sec04>b:hover+i {/* 
인접형제관계선택자 A+B는 A의 바로 뒤에 오는 형제관계인 B만 지정. 
   형제관계선택자 A~B는 A의 뒤에 오는 모든 형제관계의 B를 지정. */	
 display: none;}


 /* 5. visibility:hidden; */
#sec05>*:not(h2) {border: 1px solid;}

#sec05>p {background-color: #acf;
height: 50px;
visibility: hidden; }

#sec05:hover>p {
visibility: visible;}

#sec05>span {background-color: #aff;
 visibility: hidden; }

#sec05:hover>span {visibility: visible;}


#dv {border:6px double #ccf;
background-color: #ccc;
width:60%;
margin: 2em auto;
padding: 1em;
white-space: pre/* pre태그처럼
공백을 소스 그대로 살려줌 */;
opacity: 1; }

#dv:hover {
 opacity: 0 /* 요소 완전 투명 */;
 transition:1s;	}


#top {border-radius:50%;
background-color: #000;
margin:2em auto 1em;
width: 50px; height: 50px; 
text-align: center;
line-height:  50px;
text-transform: uppercase;}

#top:hover {background-color: #0ac;
 margin:2em auto 0.7em;
 transition:0.7s;}

#top>a {text-decoration: none;
font-weight: bold;}

#top>a:link, #top>a:visited {
color: #fff;	
} 

#top>a:hover, #top>a:active {
color: #ff0;	
}