CSS 개념
CSS (Cascading Style Sheet)
- HTML에는 정보가 들어있고, CSS는 디자인을 담당.
- 문서의 레이아웃과 스타일을 정의함.
- HTML로 작성된 정보를 꾸며주는 언어
CSS 구성 요소
- 선택자 : 디자인을 적용할 HTML 영역
- 속성 : 어떤 디자인을 적용할지 정의
- 속성값 : 어떤 역할을 수행할지 구체적으로 명령. 세미콜론; 필수 입력.
선택자 { 속성 : 속성값 }
CSS 연동
Inline Style Sheet – 태그 안에 직접 원하는 스타일을 적용
<body>
<h1 style="color: blue;">Hello World</h1>
</body>
Internal Style Sheet – <style> 태그 안에 CSS 코드를 작성합니다.
<head>
<style>
h1 { color: blue; }
</style>
</head>
<body>
<h1>Hello World</h1>
</body>
External Style Sheet – <link> 태그로 CSS 문서를 불러옴
(1) index.html 파일
<!-- html 문서 -->
<head>
<link rel="stylesheet" href="index.css">
</head>
<body>
<h1>Hello World</h1>
</body>
(2) index.css 파일
/* css 문서 */
h1 { color: blue; }
CSS 선택자
선택자
- Type : 태그
- Class : 태그의 별명
- ID : 태그 이름
Type 선택자 – 특정 태그에 스타일을 적용
<head>
<style>
h1 { color: blue ; }
</style>
</head>
<body>
<h1>Type Elice</h1>
</body>
Class 선택자 – .(점)으로 클래스 이름을 선언하고, 해당 클래스에 스타일을 적용
<head>
<style>
.coding { color: blue; }
</style>
</head>
<body>
<h1 class= "coding">Class Elice</h1>
</body>
ID 선택자 – #으로 ID를 선언하고, 해당 ID에 스타일을 적용
<head>
<style>
#coding { color: blue; }
</style>
</head>
<body>
<h1 id= "coding">ID Elice</h1>
</body>
실습
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>CSS 선택자</title>
<style>
h2 { color: red; }
.coding { color: green; }
#coding { color: yellow; }
</style>
</head>
<body>
<h2>Type Hello World</h2>
<h2 class="coding">Class Hello World</h2>
<h2 id="coding">Id Hello World</h2>
</body>
</html>
실습결과
Type Hello World
Class Hello World
Id Hello World
속성의 상속
부모 태그 <header> <footer>의 CSS 속성은 자식 태그 <h1> <p>가 상속 받는다.
반대로 자식 태그의 CSS 속성은 부모 태그에 영향을 미치지 않는다.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>CSS 속성의 상속</title>
<style>
header {
color:red;
}
header h2{
color:blue;
}
footer p{
color:green;
}
</style>
</head>
<body>
<header>
<h2>header h2</h2> <!-- blue !-->
<p>header p</p> <!-- red !-->
</header>
<footer>
<h2>footer h2</h2> <!-- black !-->
<p>footer p</p> <!-- green !-->
</footer>
</body>
</html>
캐스케이딩
1. 순서에 의한 캐스케이딩
나중에 적용한 속성값의 우선순위가 높다.
<p> Hello world </p> <!-- blue !-->
p { color : red; }
p { color : blue; }
2. 디테일에 의한 캐스케이딩
구체적으로 지시할 수록 우선순위가 높다.
<header>
<p> hello world </p> <!-- red !-->
</header>
header p { color : red }
p { color : blue }
3. 선택자(id 또는 class)에 의한 캐스케이딩
style > id > class > type 순으로 우선순위가 높다
<h3 style="color:pink" id="color" class="color"> color </h3> <!-- pink !-->
#color { color : blue; }
.color { color : red; }
h3 { color : green; }
CSS 주요 속성
width, height
구체적인 영역 설정
font (글자)
<p class = "paragraph"> 즐거운 웹프로그래밍 </p>
.paragraph {
font-size : 50px; /* 글자 크기 */
font-family : Arial, sans-serif; /* 글꼴 */
font-style : italic; /* 글자 기울기*/
font-weight : bold; /* 글자 두께*/
}
border (테두리)
<p class = "paragraph"> 즐거운 웹프로그래밍 </p>
.paragraph {
witdh: 500px;
height: 500px;
border-style : solid; /* 실선(점선은 dotted) */
border-width : 10px; /* 테두리 두께*/
border-color : 10px; /* 테두리 색깔*/
/* 한번에 이어서 선언 가능*/
border: solid 10px red;
}
background (배경)
<p class = "paragraph"> 즐거운 웹프로그래밍 </p>
.paragraph {
background-color : yellow; /* 배경 색깔*/
background-image : url(이미지경로);
background-repead : no-repeat; /* x축으로 반복 repeat-x , y축으로 반복 repeat-y */
background-position : left; /* 배경이미지의 위치 top, bottom, center, left, right 등 */
}
실습
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>CSS 주요 속성 2</title>
<style>
.paragraph {
width: 500px;
height: 500px;
font-size; 50px;
font-weight: bold;
font-style: italic;
font-family: Arial, times, sans-serif;
border-style: solid;
border-width: 2px;
border-color: red;
background: yellow;
background-image: url(elice_logo.png);
background-repeat: no-repeat;
background-position: center;
}
</style>
</head>
<body>
<h1 class="paragraph">Nice to meet you</h1>
</body>
</html>
실행결과