CSS #1
스타일 시트(style sheet): HTML5 문서에서 디자인의 표현 한계를 극복하고 다양한 레이아웃 효과를 높이기 위해 글꼴과 글자 크기, 여백과 배경색, 정렬 방식 등의 여러가지 스타일을 모아 작성하는 기술
이점: 하나의 스타일을 작성한 후 여러 개의 HTML5 문서에서 불러들여 사용할 수 있고, 테이블이나 프레임에 의존하지 않고 문서 구조를 표과적으로 표현할 수 있어 편리함
CSS3
CSS(Cascading Style Sheet)3란 W3C에서 웹 표준으로 제작하고 있는 CSS의 최신 버전으로, 웹 페이지에 다양한 스타일을 지정하기 위해서 사용하는 기술
스타일 정의는 스타일 대상(selector)과 스타일 선언부(declaration)로 구성됨
HTML 문서에서 <p>태그 내의 텍스트에 대해 이탤릭체, 파란색 효과를 지정하는 CSS 코드는 다음과 같음
@charset "utf-8"; p {
font-style:italic; color:blue;
}
태그의 스타일을 작성하여 저장한 CSS3
파일은 여러 HTML5 문서에 연결할 수 있으며, HTML5 문서 본문에 존재하는 모든 <p>태그에 적용됨
특징과 기능
1.
브라우저나 플랫폼의 종류에 관계 없이 적용 가능
2.
플래시나 자바 스크립트를 사용하지 않고 동적인 웹페이지 작성 가능
3.
웹 페이지의 스타일 표현 설계 영역을 담당해 HTML 문서 마크업을 간결하게 함
4.
글자, 줄 간격, 여백, 테두리, 배경, 이미지, 하이퍼텍스트 등의 서식을 다양하게 설정 가능
5.
하나의 CSS3 문서로 여러 HTML 문서의 스타일을 한꺼번에 관리하고 효과 적용 가능
선택자
CSS3에서 HTML5의 특정 대상에 대해 스타일을 지정할 때 그 스타일을 적용할 대상을 선택자(selector)라고 함
선택자의 종류에는 범용 선택자, 태그 선택자, 아이디 선택자, 클래스 선택자 등이 있음
1.
범용 선택자
- 웹 페이지의 일부분이 아닌 전체를 대상으로 한 선택자
- ‘*’ 기호로 표현하며 웹 페이지를 전체적으로 디자인 할 때 사용
* {
margin:0; padding:0; }
위와 같이 설정하면 문서의 모든 요소의 외부, 내부 여백을 0으로 선언한 것이다.
2.
태그 선택자
- 특정 태그를 선택자로 지정한 것
- 하나의 태그를 대상으로 스타일을 지정할수도, 같은 스타일을 여러 태그에 지정할수도 있음
- 태그 선택자에 지정된 스타일을 HTML 문서에서 참조됨
3.
아이디 선택자
- 특정 태그가 가진 아이디를 선택자로 지정한 것
- 아이디명은 HTML
문서 내에서 중복 없이 유일하게 하나만 존재함
4.
클래스 선택자
- 특정 태그가 가진 클래스를 선택자로 지정한 것
- 클래스 명은 여러 태그에서 중복으로 지정하여 사용할 수 있으며, 여러 태그에 같은 스타일을 적용할 때 사용함
스타일 작성
특정 일부 태그에만 필요한 경우, 하나의 웹 페이지에만 필요한 경우, 여러 문서에서 공통으로 필요로 하는 경우 등의 상황에서 스타일이 적용됨
1.
인라인 스타일
- 스타일이 필요한 특정 태그에 속성을 기술하는 것처럼 style=“속성:값;”의 형태로 스타일 속성을 태그 안에 작성
<body>
<p
style="color:blue;"> 인라인
<span
style="color:red;"> 스타일입니다.
</span>
</p>
<p> 일반 스타일입니다.
</p>
</body>
2.
임베디드 스타일
- HTML5 문서의 헤드 부분에 <style>
태그를 사용하여 필요한 스타일들을 한꺼번에 모아 작성하는 방법, 내부 스타일이라고도 함
- 선언해둔 스타일은 본문에서 선언 대상이 나타나면 참조하여 적용됨
<head>
<style>
p { font-size:12pt;
color:red; text-align:center; }
</style>
</head>
<body>
<p> 내부 스타일입니다.
</p>
<span> 일반 스타일입니다.
</span>
</body>
p 태그에 대해 임베디드 스타일을 지정한 코드의 실행 화면
3.
외부 스타일
- HTML 문서 외부에 스타일 시트 파일을 작성해두고 여러 웹 페이지에서 해당 스타일이 필요할 경우 스타일 시트 파일을 불러들여 참조하는 방식
-
HTML 문서의 head
부분에서 link
태그로 스타일 시트 파일을 연결
#cssex3_1.css
@charset "utf-8";
p{ display:block; font-size:20pt; color:green;
text-align:right; border:5px double red; }
#cssex3_2.html
<head>
<link
rel="stylesheet" href="./cssex3_1.css" />
</head>
<body>
<pre>
<p>
외부 스타일이 적용되어 블록이 설정되고
블록의 테두리 두께는 5px, 빨간 이중선으로, 글자는 녹색의 20pt로 블록의 오른쪽에 나타납니다.
</p>
</pre>
<span>
일반 스타일입니다.
</span>
</body>
서식 관련 스타일
1.
글자 관련 속성
=> font-family:글꼴1,글꼴2,…;: 글꼴의 종류 설정. ‘,’로 구분하여 작성하며 차례로 검색해 해당하는 글꼴이 시스템에 있으면 적용
=> font-size:속성값;: 글자 크기 설정(pt, px, %, small, medium, large 등)
=> font-style:속성값;: 글자 효과 설정(italic 등)
=> color:속성값;: 글자 색상 설정(색상 코드, rgb(r,g,b), rgba(r,g,b,a) 등)
=> overflow:속성값;: 태그 표현 범위를 벗어나는 글자 처리에 대해 설정(scroll, visible, auto, hidden 등)
=> font-spacing:속성값;: 글자 간격 설정(normal, pt, px 등)
=> font-weight:속성값;: 글자 굵기 설정(normal, bold, bolder, lighter 등)
#cssex4_1.css
@charset "utf-8";
body { text-align:center; }
#txt1 { font-size:28px;
color:rgba(0,0,255, 0.7); }
.over1 { font-family:"궁서", Arial;
width:200px; height:100px; margin:10px auto;
line-height:1.5; overflow:auto; border:1px solid #ccc; }
#cssex4_2.html
<head>
<title> 글자 효과 지정 </title>
<meta
charset="utf-8" />
<link
rel="stylesheet" href="./cssex4_1.css" />
</head>
<body>
<div
id="txt1"> 글자 관련 스타일 </div>
<br />
<br />
<div
class="over1"> 글자 관련 스타일 속성을 이용하여 글꼴, 글자크기와모양,색상,표현범위지정등을설정한다.이외에도자간,굵기,줄간격을설정할수있다.
</div>
</body>
2.
문단 관련 속성
=> text-align:속성값;: 문단 정렬 설정(left, center, right, justify(좌우 정렬))
=> text- indent:속성값;:
문단 들여쓰기/내어쓰기 설정(px, %, 음수(내어쓰기))
=> line-height:속성값;:
줄 간격 설정(normal,
pt, px, % 등)
=> text-transform:속성값;:
영문자의 대소문자 변환 설정(none, uppercase, lowercase,
capitalize)
=> text-decoration:속성값;:
문장 장식 설정(none,
underline, overline, line-through 등)
=>
text-shadow:x,y,blur,color;: 글자의 그림자 설정(글자로부터의 x,y 이동 좌표,
번짐 정도, 그림자의 색상)
#cssex5_1.css
@charset "utf-8";
h1 { text-align:center; text-indent:50px; }
#text1 { text-transform:capitalize; }
#text2 { text-decoration:underline; }
#text3 { text-decoration:line-through; }
a:link { text_decoration:none; }
a:hover { text-decoration:underline; color:red; }
#cssex5_2.html
<head>
<title> 문단과 링크 효과 설정 </title>
<meta
charset="utf-8" />
<link
rel="stylesheet" href="./cssex5_1.css" />
</head>
<body>
<h1> 문단과 링크 효과 </h1>
<p
id="text1"> CSS3의 문장과 문단 style </p>
<p
id="text2"> 문장 밑줄 효과(underline) </p>
<p
id="text3"> 문장 취소선 효과(line-through) </p>
<a
href="http://www.naver.com"> 네이버로 이동 </a>
<br />
<br />
링크 위에 마우스를
올리면 밑줄이 나타납니다. <br />
</body>
3.
여백과 위치 관련 속성
=> margin:속성값;: 태그 문단 바깥쪽 여백 설정
=> padding:속성값;: 태그 문단 안쪽 여백 설정
=> float:속성값;: 태그 문단 수평 방향 배치(left, right)
=> position:속성값;: 태그 문단 위치 설정(static, relative, absolute)
<!DOCTYPE html>
<html lang="ko">
<head>
<title>
여백과 위치 지정 </title>
<meta
charset="utf-8" />
<style>
body
{ margin:0; padding:0; }
p,
div { display:block; margin:50px 10px; width:300px; text-align:center;
background:#ddd; }
.text1
{ border:1px solid red; color:green; float:left; }
.text2
{ border:3px dotted green; float:left; }
</style>
</head>
<body>
<div
class="text1"> 여백과 위치 1 </div>
<p
class="text2">여백과위치2 </p>
</body>
</html>
4.
목록 관련 속성
=> list-style:속성값;: 전체 목록 스타일 지정
=> list-style-type:숫자 타입;: 숫자 타입(아라비아 숫자, 로마자) 글머리 기호 설정(none, decimal, upper-alpha(영문 대문자), lower-alpha, upper-roman(로마자 대문자), lower-roman 등)
=> list-style-image:url(“이미지 경로”);: 글머리 기호를 이미지로 대체 지정
=> list-style-position:속성값;:
글머리 기호의 위치 지정(inside(목록 안쪽), outside(목록 바깥쪽))
<head>
<style>
body { margin:0;
padding:0; }
#main_menu {
background:#aaa; }
#main_menu li {
padding:5px; display:inline-block; list-style:none; }
</style>
</head>
<body>
<nav
id="main_menu">
<ul>
<li>
회사 소개 |
</li>
<li>
공지사항 |
</li>
<li>
자주 묻는 질문 |
</li>
<li>
자유게시판 </li>
</ul>
</nav>
</body>
5.
테두리 관련 속성
=> outline:속성값;: 전체 아웃라인 설정(두께, 스타일, 색상 등 지정)
=> border:속성값;: 전체 테두리 설정(두께, 스타일, 색상 등)
=> border-width:속성값;: 테두리 두께 설정(pt, px, in, cm값 지정)
=> border-color:속성값;: 테두리 색상 설정(색상명 혹은 색상값)
=> border-style:속성값;:
테두리 스타일 설정(none,
solid(단일 선), double(이중 선), dash(대시),
dot(점),
groove(홈 모양) 등)
=> border-radius:속성값;: 테두리의 둥근 정도 설정(px 등 값)
<!DOCTYPE html>
<html lang="ko">
<head>
<title>
테두리와 아웃라인 </title>
<meta
charset="utf-8" />
<style>
body
{ text-align:center; font:bold 16px Arial; }
.box1
{ display:block; width:600px; height:100px; border:2px solid red; outline:3px
dotted #00f; outline-offset:10px; }
.box2 {
display:block; width:600px; height:100px; border:3px dashed #000;
border-radius:20px; -webkit-border-radius:20px; -moz-border-radius:20px; }
</style>
</head>
<body>
<h2>
테두리와 아웃라인 효과 </h2>
<p
class="box1"> 높이100px,너비300px크기의블록에 <br/>
빨간색
단선 테두리와 <br />
파란색
점 아우트라인 효과를 준 스타일입니다. </p>
<br
/>
<p
class="box2"> 높이100px,너비300px크기의블록에<br/>
대시
테두리, <br />
박스의
둥근 모서리 효과를 준 스타일입니다. </p>
</body>
</html>
6.
배경 관련 속성
=> background:속성값;: 배경과 관련한 전체적인 스타일 지정
=> background:url(“이미지 경로”);: 배경 이미지 삽입
=> background-color:속성값;: 배경색 삽입
=> background-size:속성값;: 배경 이미지 크기 설정(auto, cover, contain)
=> background-repeat:속성값;:
배경 이미지의 반복 설정(repeat, repeat-x, repeat-y, no-repeat)
<!DOCTYPE html>
<html lang="ko">
<head>
<title>
배경 이미지 </title>
<meta
charset="utf-8" />
<style>
body
{ background:url("./LA1.png"); background-repeat:no-repeat;
background-size:cover; text-align:center; }
#title
{ display:block; width:300px; height:30px; text-align:center; margin:50px auto;
border:1px solid; border-radius:20px;
background:-webkit-linear-gradient(top,#fff,#000); }
#font1
{ color:rgb(255,255,255); font-size:16px; }
</style>
</head>
<body>
<p
id="title"> 그래디언트 배경 설정 </p>
<p
id="font1" > 배경 이미지가 가로/세로 크기 비율은 고정되고
이미지의
가로 크기만 본문의 가로 크기에 맞추어 집니다. </p>
</body>
</html>