CSS는 구체적으로 어떤 스타일로 요소가 표시 되는지를 정하는 규격이라고 할 수 있다. 초기에는 HTML 하나로 다 했지만 수정의 불편함으로 내용과 스타일(표현)을 분리하기 위해 CSS가 만들어졌다.
인라인 스타일(Inline style)
HTML 요소 내부에 style 속성을 사용해서 CSS 스타일을 적용하는 방법
인라인 스타일은 해당 요소에만 적용
인라인 스타일은 한번 설정된 스타일을 변경하기 매우 어려우며, 스타일 시트를 사용하는 많은 이점을 잃게 된다. 고정 값으로 사용하는 경우에 사용하는 것이 좋다.
내부 스타일 시트(Internal style sheet)
HTML문서 내의 태그(<head>
등)에 style 설정하는 방법
내부 스타일 시트는 해당 HTML 문서에서만 적용
외부 스타일 시트(External style sheet)
웹 사이트 전체의 스타일을 하나의 파일에서 변경할 수 있도록 해준다.
.css 확장자를 사용하여 저장하며 스타일을 적용할 태그에 <link>
태그를 사용하여 스타일을 적용시킨다.
스타일 시트는 대소문자 구문 없음
같은 결과지만 다른 방식
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body style="background-color: mistyrose";>
<h3 style="color: purple;">CSS 스타일 맛보기</h3>
<hr style="border: 5px solid yellowgreen;">
<p>
나는 <span style="color: blue; font-size: 20px;">웹 프로그래밍</span>을 좋아합니다.
</body>
</html>
<style>
로 시트로 꾸미기<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<style>
body { background-color: mistyrose;}
h3 { color: purple;}
hr { border: 5px solid yellowgreen;}
span { color: blue; font-size: 20px;}
</style>
<body>
<h3>CSS 스타일 맛보기</h3>
<hr>
<p>나는 <span>웹 프로그래밍</span>을 좋아합니다.</p>
</body>
</html>
같은 결과지만 다른 방식
<link>
로 외부 스타일 시트 불러오기<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<link type="text/css" rel="stylesheet" href="../css/mystyle.css">
</head>
<body>
<h3>CSS 스타일 맛보기</h3>
<hr>
<p>나는 웹 프로그래밍을 좋아합니다.</p>
</body>
</html>
@import
로 외부 스타일 시트 불러오기<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style>
@import url(../css/mystyle.css);
</style>
</head>
<body>
<h3>CSS 스타일 맛보기</h3>
<hr>
<p>나는 웹 프로그래밍을 좋아합니다.</p>
</body>
</html>
<p>
태그는 <em>
의 부모 태그이다.<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>부모 스타일 상속</h3>
<hr>
<p style="color: green">
자식 태그는 부모의 스타일을 <em style="font-size: 25px">상속</em>받는다
</p>
</body>
</html>
HTML 태그의 모양을 꾸밀 시트를 선택하는 기능이다.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<style>
h3, li {color: brown;}
</style>
<body>
<h3>Web Programming</h3>
<ul>
<li>HTML5</li>
<li><strong>CSS</strong></li>
<li>JAVSCRIPT</li>
</ul>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<style type="text/css">
h1 { color: red;}
p { color: blue;}
</style>
</head>
<body>
<h1>안녕하세요?</h1>
<p>문단태그 입니다.</p>
</body>
</html>
.
(점)으로 시작하는 이름의 셀렉터<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<style>
* {color: green;}
.warning {color: red;}
body.main {background: aliceblue;}
.main {color: yellow;}
h3, li {color: brown;}
#list {backgroud: mistyrose;} <!--id 셀렉터 -->
ul strong {color: dodgerblue;}
div>strong {background: red;}
h3:first-letter {color: red;}
li:hover {background: yellowgreen;}
</style>
</head>
<body class="main">
<h3>Web Programming</h3>
<hr>
<div>
<div class="main">
2학기 <strong>학습 내용</strong>
</div>
<ul id="list">
<li>HTML5</li>
<li><Strong>CSS</Strong></li>
<li>JAVASCRIPT</li>
</ul>
<div class="warning">60점 이하는 F!</div>
</div>
</body>
</html>
#
로 시작 하는 이름의 셀렉터>
' 기호로 조합한다. CSS5_selector3_class3.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<style>
ul strong {
color: dodgerblue;
} /*자손 셀렉터*/
div > strong {
background: yellow;
} /*자식 셀렉터*/
</style>
</head>
<body>
<div>
<div>
2학기 <strong>학습 내용</strong>
</div>
<ul>
<li>HTML5</li>
<li><strong>CSS</strong></li>
<li>JAVASCRIPT</li>
</ul>
<div>60점 이하는 F!</div>
</div>
</body>
</html>
*
(와일드 문자)를 사용하여 모든 태그에 적용시키는 셀렉터
* {color: green; }
웹페이지의 모든 태그에 적용(텍스트 색을 green으로 칠함)
CSS5_selector3_class3.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<style type="text/css">
body {
background-color: blue;
}
<!--전체 선택자-->* {
color: red;
}
</style>
</head>
<body>
<h1>안녕하세요?</h1>
<p>문단태그 입니다.</p>
</body>
</html>
특성 속성이나 특정 속성값을 가지고 있는 HTML 요소를 선택한다.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style>
/* 속성 셀렉터*/
input[type=text] {color: blue;}
input[type=email] {color: brown;}
</style>
</head>
<h3>Web Programming</h3>
<hr>
이름 : <input type="text" name="abcd"><br>
전자우편 : <input type="email" name="email" placeholder="jin@naver.com">
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<style type="text/css">
a:link{color: gray; text-decoration: none;}
a:visited{color: yellow; text-decoration: none;}
a:hover{color: green; text-decoratoin: underline;}
a:active{color: red; text-decoratoin: underline;}
</style>
</head>
<body>
<h1><a href="https://www.naver.com">네이버</a></h1>
</body>
</html>
3가지 방법으로 표현가능
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<style>
h3 {text-align: right;}
span {text-decoration: line-through;}
strong {text-decoration: overline;}
p1 {text-indent: 3em; text-align: justify;}
p2 {text-indent: 1em; text-align: center;}
</style>
</head>
<body>
<h3>텍스트 꾸미기</h3>
<p class="p1">HTML의 태그만으로 기존의 워드 프로세서와 같이 들여쓰기, 정렬, 공백 등과 세밀한 <span>텍스트 제어</span>를 할 수 없다.</p>
<p class="p2">그러나<strong>스타일 시트</strong>는 이를 가능하게 한다.</p>
<a href="http://www.naver.com" style="text-decoration: none">밑줄이 없는 네이버 링크</a>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<style>
body {font-family : "Times New Roman", Serif; font-size : large;}
h3 {font : italic bold 40px consolas, sans-serif;}
</style>
</head>
<body>
<h3>Consolas font</h3>
<hr>
<p style="font-weight:900">font-weight 900</p>
<p style="font-weight:100">font-weight 100</p>
<p style="font-style:italic">Italic Style</p>
<p style="font-style:oblique">Oblique Style</p>
<p>현재 크기의
<span style="font-size:1.5em">1.5배</span>
크기로</p>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<hr>
<p style="border: 3px solid blue">3픽셀 soild</p>
<p style="border: 3px none blue">3픽셀 none</p>
<p style="border: 3px hidden blue">3픽셀 hidden</p>
<p style="border: 3px dotted blue">3픽셀 dotted</p>
<p style="border: 3px dashed blue">3픽셀 dashed</p>
<p style="border: 3px double blue">3픽셀 double</p>
<p style="border: 15px groove yellow">15픽셀 groove</p>
<p style="border: 15px ridge yellow">15픽셀 ridge</p>
<p style="border: 15px inset yellow">15픽셀 inset</p>
<p style="border: 15px outset yellow">15픽셀 outset</p>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<style>
p {background : #90D000; width : 300px; padding : 20px;}
#round1 { border-radius : 50px;}
#round2 { border-radius : 0px 20px 40px 60px;}
#round3 { border-radius : 0px 20px 40px;}
#round4 { border-radius : 0px 20px;}
#round5 { border-radius : 50px; border-style : dotted;}
</style>
</head>
<body>
<h3>둥근 모서리 테두리</h3>
<hr>
<p id="round1">반지름 50픽셀의 둥근 모서리</p>
<p id="round2">반지름 0, 20, 40, 60 둥근 모서리</p>
<p id="round3">반지름 0, 20, 40, 20 둥근 모서리</p>
<p id="round4">반지름 0, 20, 0, 20 둥근 모서리</p>
<p id="round5">반지름 50의 둥근 점선 모서리</p>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<style>
div.box {
background-color: green;
color: white;
width: 150px;
height: 80px;
margin: 40px;
border: 30px solid blue;
padding: 20px;
}
</style>
</head>
<body>
<div class="box">
Java<br>
JSP&Servlet<br>
Spring<br>
Python<br>
</div>
<h2>반갑습니다~~~</h2>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<style>
p{
background: yellow;
width: 200px;
height: 60px;
padding: 10px;
border: 20px solid lightgray; /*border-width와 border-style 동시 지정*/
}
#round { border-image: url("../images/border.png") 30 round;}
#repeat { border-image: url("../images/border.png") 30 repeat;}
#stretch { border-image: url("../images/border.png") 30 stretch;}
</style>
</head>
<body>
<h3>이미지 테두리 만들기</h3>
<hr>
<p>20*20 크기의 회색 테두리를 가진 p 태그</p>
<p id="round">round 스타일 이미지 테두리</p>
<p id="repeat">repeat 스타일 이미지 테두리</p>
<p id="stretch">stretch 스타일 이미지 테두리</p>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<style>
div {
background-color: skyblue;
background-size: 100px 100px;
background-image: url("../images/spongebob.png");
background-repeat: repeat-y;
background-position: center center;
}
div {
width: 200px;
height: 200px;
color: blueviolet;
font-size: 16px;
}
</style>
</head>
<body>
<h3>div 박스에 배경 꾸미기</h3>
<hr>
<div>SpongeBob is a over-optimistic sponge that annoys other
characters.</div>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<style>
.redBox {
box-shadow: 10px 10px red;
}
.blurBox {
box-shadow: 10px 10px 5px skyBlue;
}
.multiFiffect {
box-shadow: 2px 2px 2px black, 0 0 25px blue, 0 0 5px darkblue
}
div {
width: 150px;
height: 70px;
padding: 10px;
border: 10px solid lightgray;
background-image: url("../images/spongebob.png");
background-size: 150px 100px;
background-repeat: no-repeat;
}
</style>
</head>
<body>
<h3>박스 그림자 만들기</h3>
<hr>
<div class="redBox">뚱이와 함께</div>
<br>
<div class="blurBox">뚱이와 함께</div>
<br>
<div class="multiBox">뚱이와 함께</div>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<h3>마우스 커서</h3>
아래에 마우스를 오려 보세요. 커서가 변합니다.
<hr>
<p style="cursor: crosshair">십자 모양 커서</p>
<p style="cursor: help">도움말 모양 커서</p>
<p style="cursor: pointer">포인터 모양 커서</p>
<p style="cursor: progress">프로그램 실행 중 모양 커서</p>
<p style="cursor: n-resize">상하 크기 조절 모양 커서</p>
</body>
</html>