Programming/Web Programming2017. 7. 12. 04:28

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 문서 내에서 중복 없이 유일하게 하나만 존재함

 

#id { 속성:; }

 

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>

 



 

 

 

'Programming > Web Programming' 카테고리의 다른 글

JavaScript Basic #1  (0) 2017.07.13
CSS #2  (0) 2017.07.12
HTML Basic #3  (0) 2017.07.10
HTML Basic #2  (0) 2017.07.08
HTML Basic  (0) 2017.07.05
Posted by BinZIP