코딩 공부/HTML + CSS
[HTML+CSS] 07_CSS시작하기
chocbi
2020. 5. 9. 18:08
CSS 시작하기
#01. CSS 소개
1) CSS =Cascading Style Sheets
- HTML 태그에 디자인을 입혀주는 기법
- 문서 전체의 일관성을 유지할 수 있고, 세세한 스타일 지정의 필요를 줄여준다.
- 모양 - HTML 문서 내의 글자의 종류, 크기, 색, 여백 등을 지정한다.
- 효과 - 글자의 정렬 방식을 결정하거나 박스의 테두리를 지정하는 등 다양한 효과를 줄 수 있다.
- 웹표준 - 사용자의 WebBrowser환경에 상관없이 일정한 화면을 보여줄 수 있다.
#02. HTML 태그의 분류
1) Block Level 요소 (문단)
한 개의 독립된 덩어리 = 하나의 큰 그룹
블록 레벨 요소는 다른 블록 레벨 요소와 인라인 레벨 요소를 포함할 수 있다.
블록라인요소 noframes ul/ ol/ li
pre table / tbody thead tr / th / td address blockquote
center dir div
dl fieldset
form
h1~h6
hr menu p
2) Inline Level 요소(문장)
- “”텍스트와 동경의 요소“”이기 때문에 “텍스트 레벨 요소”라 부르기도 한다.
- 블록 레벨 요소는 포함할 수 없으며, 인라인 레벨 요소는 반드시 블록 레벨 요소 안에 포함되어 있어야 한다.
인라인요소 | |||||
---|---|---|---|---|---|
a |
abbr | br |
botton | font | i |
iframe | img |
input |
label |
q | select |
span |
strike | strong |
sub | textarea |
u |
3) 치환 요소
- 브라우저 화면상에 표시 될때 요소가 치환될 수 있는 종류의 요소.
- 치환 요소는 모두 인라인 레벨 요소이다.
- img | input | object | select | textarea
#03. HTML 문서에 CSS를 적용하는 방법
1) <style>
태그를 사용하기
<head>
<!-- 스타일 시트-->
<style type="text/css">
... CSS 코드 작성 ...
</style>
</head>
- CSS는 일반적으로 태그 안에 위치한다.
<style>
태그에는 태그 사이에 명시할 내용이 “text 기반의 css”라는 의미로 type=“text/css”속성을 명시한다.
2) 외부 파일 참조 방법
<head>
<link rel="stylesheet" type="text/css" href="외부CSS파일의 경로" />
</head>
- CSS 코드를 별도의 외부 소스파일에 작성해 두고 참조하는 방법
- 여러 페이지에서 재사용 할 수 있다는 장점이 있지만, 참조하는 모든 웹페이지에 문제가 번질 수 있다는 위험도 있다.
3) HTML 태그의 style 속성을 사용하는 방법
<div style="... CSS코드 내용...">
... 내용 ///
</div>
- 장점: 이 방법은 세밀한 조정이 가능하다.
- 단점: 전체적으로 소스코드의 양이 지나치게 많아지고 유지보수가 쉽지않다.(실무에서 거의사용 X)
#04. CSS의 기본 형식
1) CSS코드를 작성하는 기본 형식
selector {
속성1: 값; 속성2: 값; ... 속성n: 값;
}
- selector는 {...}범위 안에 기술된 CSS구문이 적용될 대상을 의미한다.
- 속성이름은 실제 처리할 그래픽적인 속성으로 폰트,문단,크기,위치,색상 등을 지정하며, 값은 해당 속성에 적용할 내용이다.
- 이러한 구조로 HTML페이지의 특정 부분이나 여러 개의 요소를 selector로 지정하고 모양을 기술하는 것이 CSS의 표현 방식 이다.
- 사용 예 -
태그의 글자 색상을 빨간색,배경색상을 초록색으로 지정
h1 {
color: #ff0000;
background: #00ff00;
}
#05. 기본 셀렉터
1) 기본 셀렉터의 종류
- CSS에서 셀렉터를 작성하는 방법은 기본적으로 HTML의 태그 이름,클래스 속성,id속성 에 대한 명시가 있다.
종류 | 표현방법 | 의미 |
---|---|---|
태그 이름 | selector{...CSS본문 ...} | 특정 태그를 가리킨다.HTML내에 동일 태그가 존재할 경우 모든 태그 요소를 일괄 처리한다. |
클래스 | .selector{...CSS본문 ...} | 셀렉터 이름 앞에 점(.)을 붙여 표시하고 HTML 태그의 class속성에 점을 제외한 이름을 명시하 여 지정한다.태그의 종류를 가리지 않고 여러 요 소에 복수 지정이 가능하다. (재사용 목적) 이 경우 selector의 이름은 자유롭게 지정한다. |
id | #selector{...CSS본문 ...} | 셀렉터 이름 앞에 (#)을 붙여 표시하고 HTML태 그의 id속성에 샵(#)을 제외한 이름을 명시하여 지정한다.Id속성의 값은 HTML페이지 내에서 중복 사용될 수 없다.(고유특성 명시) 이 경우 selector의 이름은 자유롭게 지정한다. |
2) 조합형 셀렉터
tag.class {속성1:값; 속성2:값; ... 속성n: 값;}
tag#id {속성1:값; 속성2:값; ... 속성n: 값;}
- id값이나 class값을 태그 이름과 함께 명시하여 적용하는 형태.
- 셀렉터가 지정하는 대상을 자세하게 명시할 수 있다.
- 태그, 클래스, 아이디를 독립적으로 명시할 때 보다 우선적으로 적용된다.
01-기본셀렉터.html
<!DOCTYPE html>
<html lnag="ko">
<!-- 페이지 설정 부분 -->
<head>
<!--저장시에 사용된 인코딩(파일의 저장 형식) 값을 웹 브라우저에게 알려준다.- ANSI(euc-kr), UTF-8 -->
<meta charset="utf-8" />
<!--IE의 호환성 보기 모드 금지-->
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<!-- 스마트 장치에서의 해상도 균일화 처리-->
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
<!--브라우저에 표시될 문서 제목-->
<title>My Web Page</title>
<!--스타일시트-->
<style type="text/css">
/** 태그 셀렉터 */
h2 {
color: #0000FF;
}
/** 클래스 셀렉터 - HTML태그의 class 속성과 연결된다. */
.myclass {
color: #ff0000;
}
/** 아이디 셀렉터 - HTML 태그의 id속성과 연결된다. */
#myid {
color: #00FF00;
}
/** 조합형 - 두 조건이 충족하는 경우만 적용된다. */
h2.myclass {
color: #008000;
}
</style>
</head>
<!-- 브라우저에 보여질 부분 -->
<body>
<div>
<h1>CSS 셀렉터를 알아봅시다.</h1>
<p>
셀렉터란? - CSS가 적용될 대상을 지정하는 방법.
</p>
<h2>태그 셀렉터</h2>
<h2 class="myclass">클래스 셀렉터</h2>
<p class="myclass">서로 다른 여러 개의 요소에 적용할 수 있다.</p>
<h2 id="myid">아이디 셀렉터</h2>
<p class="myclass">태그+아이디, 태그+클래스 형식으로 조합이 가능.</p>
</div>
</body>
</html>
출력결과

#06. 여러 개의 요소를 일괄 지정하기
1) AND의 의미를 갖는 콤마(,) 사용하기
- 여러 개의 요소에 동일한 CSS 내용을 적용하기 위해 셀렉터를 콤마(,)로 구분하여 일괄 처리 할 수 있다.
- 태그, class,id등 모든 형태의 CSS셀렉터가 가능하다.
02-복수지정셀렉터.html
<!DOCTYPE html>
<html lnag="ko">
<!-- 페이지 설정 부분 -->
<head>
<!--저장시에 사용된 인코딩(파일의 저장 형식) 값을 웹 브라우저에게 알려준다.- ANSI(euc-kr), UTF-8 -->
<meta charset="utf-8" />
<!--IE의 호환성 보기 모드 금지-->
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<!-- 스마트 장치에서의 해상도 균일화 처리-->
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
<!--브라우저에 표시될 문서 제목-->
<title>My Web Page</title>
<!-- 스타일시트 -->
<style type="text/css">
h1,
h2,
.myclass,
#myid {
color: #ff6600;
}
</style>
</head>
<!-- 브라우저에 보여질 부분 -->
<body>
<div>
<h1>복수 지정 셀렉터</h1>
<h2>여러개의 셀렉터를 콤마(,)로 연결한 형태</h2>
<p>
AND의 의미를 갖는다.
</p>
<hr />
<div>
<span calss="myclass">CSS</span>는
<span class="myclass">HTML</span>에
<strong id="myid">디자인</strong>을 입혀 줍니다.
</div>
</div>
</body>
</html>
출력결과

#07. 특정 상황에 따라 반응하는 가상클래스
1) 가상클래스
- HTML태그에서 특정 상황이 발생했을 경우에만 적용되는 CSS셀렉터
- 가상클래스는 CSS의 셀렉터 이름 뒤에 “:상황”의 형식으로 명시한다.
명시방법 | 의미 |
---|---|
:link | 링크의 기본 상태 |
:active | 요소 위에서 마우스가 눌러져 있는 상태 |
:hover | 요소에 마우스가 올라가 있는 상태 |
:visited | 방문했던 경험이 있는 링크 |
:focus | 요소에 포커스가 지정된 상태 |
:checked | 체크박스나 라디오버튼등이 체크된 상태 |
:selected | 드롭다운에서 선택된 요소 |
03-가상클래스(1).html
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<!--IE의 호환성 보기 모드 금지-->
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<!-- 스마트 장치에서의 해상도 균일화 처리-->
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
<title>Document</title>
<!-- 스타일시트-->
<style type="text/css">
/**
link: 링크의 기본 상태
active: 어떤 요소에 대하여 마우스가 눌러진 상태
visited: 방문한 경험이 있는 링크
hover: 어떤 요소에 대하여 마우스가 올라간 상태
*/
a:link,
a:visited {
color: black;
}
a:hover {
color: blue;
}
a:active {
color: green;
}
</style>
</head>
<body>
<div>
<h1>가상클래스</h1>
<p>
특정 요소가 어떤 상황에 직면했을 경우 동작하는 CSS
</p>
<p>
<a href="http://itpaper.co.kr">웹 페이지 바로가기</a>
</p>
</div>
</body>
</html>
출력결과



04-가상클래스(2).html
<!DOCTYPE html>
<html lnag="ko">
<!-- 페이지 설정 부분 -->
<head>
<!--저장시에 사용된 인코딩(파일의 저장 형식) 값을 웹 브라우저에게 알려준다.- ANSI(euc-kr), UTF-8 -->
<meta charset="utf-8" />
<!--IE의 호환성 보기 모드 금지-->
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<!-- 스마트 장치에서의 해상도 균일화 처리-->
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
<!--브라우저에 표시될 문서 제목-->
<title>My Web Page</title>
<!-- 스타일시트 -->
<style type="text/css">
li {
background: yellow;
}
li:hover {
background: orange;
}
li:active {
background: green;
}
</style>
</head>
<!-- 브라우저에 보여질 부분 -->
<body>
<ul>
<li><a href="http://www.naver.com">네이버</a></li>
<li><a href="http://www.daum.net">다음</a></li>
<li><a href="http://www.google.com">구글</a></li>
</ul>
</body>
</html>
출력결과

- 주황색은 hover, 초록색은 click했을때