본문 바로가기
  • 평범한 나의 개발공부 일지
개발자 수강노트/html/css

수강노트 - CSS 기본 (2)

by 블랑 블랑 2022. 7. 31.
반응형

: 스타일속성 종류 2

1) border

- 테두리

<style>
		#border01{
			/* border: 3px dotted #000; */
			border-width: 3px;
			border-style: dotted;
			border-color: #000;
		}
		#border02{
			border-bottom-width: 3px;
			border-bottom-style: dashed;
			border-bottom-color: #000;
			
			border-top-width: 3px;
			border-top-style: dashed;
			border-top-color: #000;
		}
		#border03{
			border-left-width: 3px;
			border-left-style: dashed;
			border-leftcolor: #000;
			
			border-right-width: 3px;
			border-right-style: dashed;
			border-right-color: #000;
		}
	</style>
	<input type="text" id="border01">
	<input type="text" id="border02">
	<input type="text" id="border03">

<결과>

첫번째 상,우,하,좌가 굵기3px, 스타일은 dotted, 색상은#000;

두번째 상,하가 굵기3px, 스타일은 dotted, 색상은#000;

세번째 좌,우가 굵기3px, 스타일은 dotted, 색상은#000;

2) padding

- 안쪽여백

 
<head>
<style type="text/css">
	div{
			border: 1px solid #000;
			margin-bottom: 10px;
	}
</style>
</head>

<style>
		#padding01{
			padding: 15px;
		}
		#padding02{
			padding-left: 15px;
		}
		#padding03{
			/* 상 우 하 좌 */
			padding : 15px 10px 30px 5px;
		}
		#padding04{
			/* 상하, 좌우*/
			padding: 15px 30px;
		}
	</style>
	<div id="padding01">안녕하세요.</div>
	<div id="padding02">안녕하세요.</div>
	<div id="padding03">안녕하세요.</div>
	<div id="padding04">안녕하세요.</div>

<결과>

: 여기서 #padding03 결과를 F12눌러서 마우스 대보면

초록색 상 우 하 좌 안쪽여백 (padding : 15px10px 30px 5px;) 이 적용된 모습이다.

* 밑에 주황색은 최상단에서 공통적으로 적용한 margin값 10px가 적용된 모습

3) margin

- 바깥 여백

<head>
<style type="text/css">
	div{
			border: 1px solid #000;
			margin-bottom: 10px;
	}
</style>
</head>

<style>
		#margin01{
			margin: 15px;
		}
		#margin02{
			margin-top: 30px;
		}
		#margin03{
			margin: 50px 10px 20px 30px;
		}
		#margin04{
			margin: 10px 50px;
		}
	</style>
	<div id="margin01">안녕하세요.</div>
	<div id="margin02">안녕하세요.</div>
	<div id="margin03">안녕하세요.</div>
	<div id="margin04">안녕하세요.</div>

<결과>

: margin02를 F12로 마우스를 대보면

주황색 위 바깥여백 (margin-top: 30px;) 이 적용된 모습이다.

* 밑에 주황색은 최상단에서 공통적으로 적용한 margin값 10px가 적용된 모습

4) width, height

- 가로사이즈, 세로사이즈 (블럭라인요소에만 적용)

<head>
<style type="text/css">
	div{
			border: 1px solid #000;
			margin-bottom: 10px;
	}
</style>
</head>

<style>
		#width01{
			width: 200px;
			min-width: 150px
		}
		#height01{
			height: 200px;
			max-height: 500x;
		}
	</style>
	<div id="width01">안녕하세요.</div>
	<div id="height01">안녕하세요.</div>

* min-width는 가로 최소값지정 / max-height는 세로 최대값지정

<결과>

5) background

<style>
			/*배경 색상 및 이미지*/
		#background01{
			/* background: #000; */
			background-color : rgba(0,0,0,0.5);
			height: 50px;
		}
		#background02{
			background-image: url("bg01.png");
			/* 배경 이미지 사이즈 조정 */
			background-size: 10%;
			/* 반복 옵션 설정*/
			/* background-repeat: no-repeat; */
			height: 200px;
		}
		html, body{
			height: 100%;
		}
		body{
			background-image: url("bg02.jpg");
			background-size: 30%;
			background-repeat: no-repeat;
			background-position: center top;
		}
	</style>
	<div id="background01"></div>
	<div id="background02"></div>

* 반복옵션 설정에서

no-repeat : 반복x

repeat-x : 가로반복

repeat-y : 세로반복

6) position, z-index

<style>
		#position01{
			/*
				fixed = 화면의 절대위치값으로 고정
				letf, right, top, bottom 속성으로 위치 조정 가능
			*/
			position: fixed;
			width: 50px;
			height: 50px;
			background-color: #000;
			right : 10px;
			top: 10px;
			/* 
				앞뒤 노출 순서 지정
				fixed, absolute 대상에 노출 순서 지정할 수 있다.
			*/
			z-index: 10;
		}
		#position-wrap{
			height: 300px;
			border: 1px solid #000;
			position: relative;
			/* 컨텐츠(부모테그 사이즈) 영역에서 벗어 났을 경우 옵션 설정 */
			/* overflow-y: scroll; */
			overflow: hidden;
		}
		#position02{
			/* 
				absolute - 부모 기준의 위치 절대값으로 고정
				부모의 포지션이 position: relative; 으로 설정되어 있어야 한다.
			*/
			position: absolute;	
			width: 50px;
			height: 50px;
			background-color: #f00;
			top: -20px;
			right: 10px;
		}
		#position02
	</style>
	<div id="position01"></div>
	<div id="position-wrap">
		<div id="position02"></div>
	</div>
	<h4>overflow</h4>
	<style>
		#overflow{
			height: 50px;
			border: 1px solid #000;
			/* hidden - 영역을 벗어날 경우 감춘다. */
			/* overflow: hidden; */
			/* scroll - 영역이 벗어날 경우 스크롤 생성 */
			/* overflow: scroll; */	
			overflow-y: scroll;
		}
	</style>
	<div id="overflow">
		<ul>
			<li> 컨텐츠 1</li>
			<li> 컨텐츠 2</li>
			<li> 컨텐츠 3</li>
			<li> 컨텐츠 4</li>
			<li> 컨텐츠 5</li>
		</ul>
	</div>
 

*

#position-wrap (부모영역) 에서

position: relative; 로 설정하고

#position02 (자식영역) 에서

position: absolute; 로 부모기준 위치 절대값으로 고정시킬 수 있다.

: absolute로 고정안했을때 자식영역에서 top: 0 으로 설정했을 경우

> 부모영역 컨텐츠 안에서의 기준이아니라 전체 화면 상단 맨위로 고정이 된다.

: absolute로 고정했을때 자식영역에서 top: 0 으로 설정했을 경우

> 부모영역 컨텐츠 안에서 부모 위치 절대값 기준이기 때문에 부모영역컨텐츠 내에서 상단에 고정이 된다.

*

z-index는

앞뒤노출순서를 지정할수있다

a가 z-index: 9고 , b가 z-index: 10 면 b가 숫자가 더 높으니 b가 앞으로 노출이 된다.

7) overflow

<style>
		#overflow{
			height: 50px;
			border: 1px solid #000;
			/* hidden - 영역을 벗어날 경우 감춘다. */
			/* overflow: hidden; */
			/* scroll - 영역이 벗어날 경우 스크롤 생성 */
			/* overflow: scroll; */	
			overflow-y: scroll;
		}
	</style>
	<div id="overflow">
		<ul>
			<li> 컨텐츠 1</li>
			<li> 컨텐츠 2</li>
			<li> 컨텐츠 3</li>
			<li> 컨텐츠 4</li>
			<li> 컨텐츠 5</li>
		</ul>
	</div>

8) display

- 노출옵션

<style>
		#display01, #display02{
			/* 선택된 대상을 inline 요소로 변경 */
			display: inline;
		}
		#display03{
			/* 블럭요소로 변경 */
			display: block;
		}
		#display04{
			/* 감추기 기능 */
			display: none;
		}
		#display06{
			/* 높이와 넓이가 설정 가능한 inline 요소로 변경 */
			display: inline-block;
			height: 100px;
		}
		
	</style>
	<div id="display01">안녕하세요.</div>
	<span>한국스마트정보교육원입니다.</span>
	
	<div id="display02">안녕하세요.</div>
	<span id="display03">한국스마트정보교육원입니다.</span>
	<div id="display04">ksmart</div>
	<span id="display05">ksmar.or.kr</span>
	<span id="display06">717-1008</span>
 

9) line-height

- 텍스트 높이 설정

<style>
		#line-height01{
			/* 텍스트 요소의 높이 설정 */
			line-height: 25px;
		}
	</style>
	<div id="line-height01">
        안녕하세요. 안녕하세요. 안녕하세요. 안녕하세요. 안녕하세요. 안녕하세요. 안녕하세요. 안녕하세요. 안녕하세요. 안녕하세요. 안녕하세요. 안녕하세요. 안녕하세요. 안녕하세요. 안녕하세요. 안녕하세요. 안녕하세요. 안녕하세요. 
	</div>
 

10) list-style

- 불릿모형설정

<style>
		#list-style01 li{
			/* 불릿을 없앨때 */
			/* list-style-type: none; */
			list-style-type: decimal;
		}
	</style>
	<ul id="list-style01">
		<li>목록</li>
		<li>목록</li>
	</ul>

 

11) 가상선택자- :hover (feat. display)

<html>
<head>
<meta charset="UTF-8">
<title>display와 가상선택자</title>
<style>
	.menu1 ul{
		display: none;
	}
	.menu1:hover ul{
		display: block;
	}
</style>
</head>
<body>
	<h1>display와 가상선택자</h1>
	
	<nav>
		<ul>
			<li class="menu1">
				메뉴1 
				<ul>
					<li>서브메뉴1</li>
					<li>서브메뉴2</li>
				</ul>
			</li>
		</ul>
	</nav>
	
</body>
</html>

<결과>

마우스 갖다 대기 전

메뉴1에 마우스를 갖다대면 서브메뉴1,2가 노출이된다.

12) 가상선택자- :active

- 선택된 대상에 마우스를 누르고 있을 때

<style>
		#active:hover {
			background-color: blue;
			color: #fff;
		}
		#active:active {
			background-color: red;
			color: #fff;	
		}
	</style>
	<button type="button" id="active">
		안녕하세요.
	</button>
 

<결과>

마우스로 누르고있으면 아래 결과가 나타난다.

13)가상선택자 - : focus

 

<결과>

14) 가상선택자- : first-child, : last-chirld

<style>
		#list li:first-child {
			color: red;
		}
		#list li:last-child {
			color: blue;	
		}
		
		table{
			border-collapse: 0;
			border-spacing: 0;
		}
		table td, tabel th{
			border-top: 1px solid #000;
			border-left: 1px solid #000;
		}
		
		table td:last-child {
			border-right: 1px solid #000;
		}
		
		table tr:last-child td{
			border-bottom: 1px solid #000;
		}
}
		
		
	</style>
	<ul id="list">
		<li>목록</li>
		<li>목록</li>
		<li>목록</li>
		<li>목록</li>
		<li>목록</li>
	</ul>
	
	<table>
		<tbody>
			<tr>
				<td>1</td>
				<td>2</td>
				<td>3</td>
			</tr>
			<tr>
				<td>4</td>
				<td>5</td>
				<td>6</td>
			</tr>
			<tr>
				<td>7</td>
				<td>8</td>
				<td>9</td>
			</tr>
		</tbody>
	</table>
 

<결과>

ul, li

테이블

: last-chirld 적용 전

* 3,6.9 (열의 맨 마지막) 에 오른(right) 테두리효과 줘야함

* 7,8,9 (첫번째 행에서 맨 마지막 열 각각에 아래(bottom) 테두리효과 줘야함

: last-chirld 적용 후

table td:last-child { border-right: 1px solid #000;} table tr:last-child td{ border-bottom: 1px solid #000;}

15) 가상선택자- : nth-child

<style>
		#list2 li:nth-child(2n+1) {	
			color: red;
		}
	</style>
	<ul id="list2">
		<li>목록</li>
		<li>목록</li>
		<li>목록</li>
		<li>목록</li>
		<li>목록</li>
	</ul>
 

<결과>

*

:nth-child() 가로안에

1. 숫자를 넣으면 해당숫자에 효과

2. 2n을 넣으면 짝수에 효과

3. 2n+1을 넣으면 홀수에 효과

16) float, clear

- 블럭 요소의 정렬을 설정 할 수 있다.

- float 설정시 먼텐츠의 요소의 넓이 만큼 축소 된다.

- float 설정이 필요할 경우 가로 넓이를 지정해야한다.

- float 설정시 부모 테그를 생성 후 에 정렬한다.

- float 적용시 적용된 대상의 이전과 다음의 컨텐츠들이 자동 정렬된다.

<style>
		.float01{
			float: left;
			width: 200px;
		}
		#container2 {
			/* float 전체 해제*/
			clear: both;
		}
		#container3{
			float: right;
		}
		#container3 .float03{
			float: left;
		}
	</style>
	<div id="container1">
		<div class="float01">안녕하세요1.</div>
		<div class="float01">안녕하세요2.</div>
	</div>
	<div id="container2">
		<div class="float02">안녕하세요3.</div>
		<div class="float02">안녕하세요4.</div>
	</div>
	<div id="container3">
		<div class="float03">안녕하세요5.</div>
		<div class="float03">안녕하세요6.</div>
	</div>

	
	<h4>가로 정렬 네비게이션 예</h4>
	<style>
		nav {
			border: 1px solid #000;
			}
		nav ul, nav li{
			margin: 0;
			padding: 0;
		}
		nav ul{
			display: inline-block; 
		}
		nav li{
			list-style: none;
			float: left;
			padding: 5px 10px;
		}
		nav a{
			color: #ff0000;
			text-decoration: none;
		}
		nav a:hover{
			color: #00ff00;
		}
	</style>
	<nav>
		<ul>
			<li> <a href="#">메뉴1</a></li>
			<li> <a href="#">메뉴2</a></li>
			<li> <a href="#">메뉴3</a></li>
		</ul>
	</nav>

<결과>

17) 레이아웃 구성하기

<header></header>

<div></div>

<footer></footer>

반응형

'개발자 수강노트 > html/css' 카테고리의 다른 글

수강노트 - CSS 기본 (1)  (0) 2022.07.31
수강노트 - HTML 기본  (0) 2022.07.31

댓글