Cascading Style Sheets
Cascade : 'ํญํฌ๊ฐ ๋์ด ๋จ์ด์ง๋ค'์ ๋ป์ ๊ฐ์ง๋ ๋จ์ด
CSS ๋ ์ฐ์ ์์๋ฅผ ๊ฐ์ง๊ณ ์ ์ฉ์ด ๋๋๋ฐ ์ด ์ฐ์ ์์๊ฐ ์ ์ฉ๋๋ ๊ณผ์ ์ด ๋ง์น ํญํฌ์ฒ๋ผ ์์์ ์๋๋ก ๋จ์ด์ง๋ ๋ชจ์์ด๋ผ cascade ๋ผ๋ ์ด๋ฆ์ ๊ฐ์ง
๋์ ์
1. ์ฌ์ฉ์ ์ ์ ์คํ์ผ
2. ํ๊ทธ ์์์ ์์ฑ๋๋ inline ์คํ์ผ
3. head ํ๊ทธ ์์ ์คํ์ผ
4. ์ธ๋ถ ์คํ์ผ ( ์ธ๋ถ์ ํ์ผ ๋๊ณ link ๋ก ์ฐ๊ฒฐ )
HTML์ด ์น์ ๋ผ๋๋ผ๊ณ ํ๋ค๋ฉด CSS๋ HTML์ ๊พธ๋ฉฐ์ฃผ๋ ๊ฐ์ฃฝ, ํผ๋ถ
CSS 2.1 ๊ฐ๋ฐ์ด ์๋ฃ๋๊ณ CSSWG(CSS Working Group)๋ ๋ ์ด์ CSS์ ๋ฒ์ ์ 3, 4์ ๊ฐ์ ๋ฉ์ด์ ์ ๋ฐ์ดํธ๋ก ๊ฐ์ ธ๊ฐ์ง ์๊ธฐ๋ก ๊ฒฐ์ .
์????
1. CSS1์์ CSS2๋ก ์ ๋ฐ์ดํธ ๋๋๋ฐ ์๋ง์ ๊ธฐ๋ฅ๋ค์ด ์ถ๊ฐ๋์ด์ผ ํ๊ณ
2. ๊ฐ๊ฐ์ ๊ธฐ๋ฅ๋ค์ด ๊ฐ๋ฐ๋๋๋ฐ ์์ด ์๊ฒฌ์ ๋ฐ๊ณ ๋์๋ฅผ ๊ตฌํ๋ ๊ธฐ๊ฐ๋ ๋์ด๋จ์ ๋ฐ๋ผ
3. ์ด๋ฏธ ์๋ฃ๋ ๊ธฐ๋ฅ์ ๋ฐํํ์ง ๋ชปํ๊ณ ์ง์ฒด๋๋ ์๊ฐ์ด ๋ฐ์ํ๊ณ
4. ๊ฒฐ๊ตญ CSS2 ์ ์ฒด๋ฅผ ๊ฐ๋ฐ์๋ฃ ํ๊ธฐ๊น์ง 9๋ ์ด๋ผ๋ ์๊ฐ์ด ํ์ํ๊ธฐ ๋๋ฌธ.
์ด์จ๋ ์ด์ ๋ ๊ธฐ๋ฅ๋ค์ ์์ ๋จ์๋ก ๋๋์ด ๊ฐ๋ฐํ๊ณ , ์๋ฃ๋ ๊ฒ ๋จผ์ ์ ๋ฐ์ดํธ ํ๊ธฐ๋ก ๋ฐฉํฅ์ ๋ฐ๊ฟ. ์ด๋ CSS ๊ธฐ๋ฅ์ ๋จ์๋ฅผ ๋ชจ๋(module) ์ด๋ผ๊ณ ํํ.
๋์ด์ level ์ด ์๋ Module Level 3 ๋ก ํํ
์์ผ๋ก CSS์ ๋ช ์นญ์ CSS3, CSS4๊ฐ ์๋ CSS ๋ผ๊ณ ๋ถ๋ฅด์ ใ ใ
- selector : ์ ํ์ , ์คํ์ผ์ ์ ์ฉํ๊ณ ์ ํ๋ HTML ์์๋ฅผ ์ ํ
- property : ์์ฑ, ์คํ์ผ ์์ฑ ์ด๋ฆ
- value : ๊ฐ, ์์ฑ์ ๋์๋๋ ๊ฐ
Html ํ๊ทธ ๋ด๋ถ์ ์คํ์ผ๋งํ๋ ๋ฐฉ์
<body>
<h1 style='color:red; background-color:yellow;'>Hello world</h1>
</body>
Html
<head>
๋ด๋ถ์<style>
ํ๊ทธ ๋ง๋ฆ
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
h1 {
color:red;
background-color:yellow;
}
</style>
</head>
<body>
<h1>Hello world</h1>
</body>
</html>
css ํ์ผ์ ๋ฐ๋ก ๋ง๋ค์ด
<link>
๋ก ์ฐ๊ฒฐ
<head>
<link rel="stylesheet" href="css/foo.css">
</head>
CSS ํ์ผ ์์ CSS ํ์ผ import
@import "foo.css";
@
๊ฐ ๋ถ๋ ๋ฌธ๋ฒ. import๋ง ์๋ ๊ฒ์ด ์๋๊ณ ์๋์ฒ๋ผ ๋ค์ํ at-rule์ด ์์.
- @charset : ์คํ์ผ์ํธ์์ ์ฌ์ฉํ๋ ๋ฌธ์ ์ธ์ฝ๋ฉ์ ์ง์ . ๋ฌธ์์์ ๊ฐ์ฅ ๋จผ์ ์ ์ธ.
- @import : ๋ค๋ฅธ ์คํ์ผ ์ํธ์์ ์คํ์ผ ๊ท์น์ ๊ฐ์ ธ์ด. @charset ๋ฐ๋ก ๋ค์์ ์ ์ธ๋์ด์ผํจ.
- @font-face : ๋๋ฐ์ด์ค์ ์๋ ํฐํธ๋ฅผ ๋ค์ด๋ฐ์ ์ ์ฉํ ๋ ์ฌ์ฉ.
- @keyframes : ์ ๋๋ฉ์ด์ ์ ๋ง๋ค ๋ ์ฌ์ฉ.
- @media : ์ฌ์ฉ์ ๋๋ฐ์ด์ค์ ๋ฐ๋ฅธ ์คํ์ผ์ ๋ถ๊ธฐ ์ฒ๋ฆฌํ๊ณ ์ ํ ๋ ์ฌ์ฉ.
- @supports : ํน์ CSS ์์ฑ์ ๋ธ๋ผ์ฐ์ ๊ฐ ์ง์ํ๋์ง ํ์ธํ๊ณ ์คํ์ผ์ ์ ์ธํ๊ณ ์ ํ ๋ ์ฌ์ฉ.
๋ฌธ์ ์ ์์.
์ ๋ง์ ๋ธ๋ผ์ฐ์ ์ ๊ฐ์ ๋ค๋ฅธ ๊ธฐ๋ณธ ์คํ์ผ
๋งค์ฐ ์ค๋์ ๋ถํฐ ๋๋ฆฌ ์ฌ์ฉ๋ ๋ฐฉ๋ฒ.
๋ธ๋ผ์ฐ์ ์ ๋ชจ๋ ๊ธฐ๋ณธ์ ์ธ ์คํ์ผ ์์ฑ๋ค์ ์์ ํ ์ด๊ธฐํ ์์ผ์ ๋ชจ๋ ์คํ์ผ์ ์ฒ์๋ถํฐ ๋ง๋ค๋๋ก ํจ.
reset.css ์ฝ๋๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ ์๋ ์๊ณ , ์ฌ๊ธฐ์ ํ๋ก์ ํธ๋ง์ ์ํ ์ปค์คํ ์คํ์ผ์ ์ถ๊ฐํด์ ์ฌ์ฉํ๊ธฐ๋ ํจ.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>reset</title>
<style>
/* reset.css */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display: block;
}
body {
line-height: 1;
}
ol, ul {
list-style: none;
}
blockquote, q {
quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
content: '';
content: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
body{
font-family:'ํ์ฌ์์ ์ฌ์ฉํ๋ ๊ธฐ๋ณธ ํฐํธ', '๋ง์ ๊ณ ๋','Malgun Gothic', AppleGothic,sans-serif;
font-size: 16px;
font-weight: 400;
/* ์์ดํฐ์ reset font๊ฐ ์ค์ ์ด ์๋๋ ๊ฒฝ์ฐ๊ธฐ ์์ด ์ค์ ํด์ฃผ์ด์ผ ํจ */
-webkit-text-size-adjust:none;
}
p,div,h1,h2,h3,h4,h5,h6,ul,ol,li,dl,dt,dd,table,th,td,form,fieldset,legend,input,textarea,select,button,code,label,em,span,strong {
/* ๋จ์ด ๋จ์๋ก ๋จ์ด์ ธ ๋ด๋ฆฌ๊ฒ๋ */
word-break:keep-all;
}
/* ์ต์คํ๋ก๋ฌ ํ์ ๋ฒ์ ์์ a > img์ผ ๊ฒฝ์ฐ ๋ณด๋๊ฐ ์๊น */
img,fieldset{border:0}
legend{
position:absolute;
left:-9999px;
font-size:0;
overflow:hidden;
}
input,select,textarea{
/* ๋ชจ๋ฐ์ผ ๊ธฐ๋ณธ ์ ๊ณต ์คํ์ผ ์ ๊ฑฐ */
-webkit-appearance:none;
-moz-appearance:none;
}
/* IE ์
๋ ๋ฐ์ค ๊ธฐ๋ณธ ํ์ดํ ์ ๊ฑฐ */
select::-ms-expand{display:none;}
/* ํฌ๊ธฐ ์กฐ์ ํ๊ธฐ ์ํด์ ๋ธ๋ก ์์๋ก ๋ฐ๊ฟ */
a {
display:block;
}
table, th, tr, td {
display:block;
}
img {
display: block;
width: 100%; ๋ถ๋ชจํํ
100%
}
</style>
</head>
<body>
<h1>hello world</h1>
<h2>hello world</h2>
<h3>hello world</h3>
<h4>hello world</h4>
<h5>hello world</h5>
<h6>hello world</h6>
<p>hello world</p>
</body>
</html>
๋
ธ๋ฉ๋ผ์ด์ฆ๋ ๋ธ๋ผ์ฐ์ ์ ๊ธฐ๋ณธ์ ์ธ ์คํ์ผ ์์ฑ๋ค์ ๋ชจ๋ ์ ๊ฑฐํ์ง ์์.
๋ธ๋ผ์ฐ์ ์คํ์ผ์ ๊ธฐ๋ฐ์ผ๋ก ํ๊ณ ๊ฑฐ๊ธฐ์ ์ถ๊ฐ์ ์ธ ์คํ์ผ์ ๋ง๋ถ์ฌ ์ด๋ค ๋ธ๋ผ์ฐ์ ์์๋ ๋น์ทํ๊ฒ ๋ณด์ด๋๋ก ํต์ผ.
์ฆ, ์์ ๋ฐฐ์ด reset.css ๊ฐ ๊ธฐ์กด ์คํ์ผ์ ๋ชจ๋ ์ ๊ฑฐํ๋ ์ ๊ทน์ ์ธ ๋ฐฉ๋ฒ์ด๋ผ๋ฉด, normalize๋ ๋ธ๋ผ์ฐ์ ๊ณ ์ ์ ์คํ์ผ์ ์กด์คํ๋ฉด์ ๊ฑฐ๊ธฐ์ ์คํ์ผ์ ์ฒจ๊ฐํ๋, ์ข ๋ ๋ถ๋๋ฌ์ด ๋ฐฉ๋ฒ์ด๋ค!!
๋ง์ฝ CSSWG์์ CSS๋ฅผ ์ ์ํ๋ ์ฌ๋๋ค์ ์ ์ฅ์ด๋ผ๋ฉด, ์ด๋ค์์ผ๋ก ๋ธ๋ผ์ฐ์ ์๊ฒ ๊ธฐ๋ณธ ์คํ์ผ์ ์ฃผ๊ฒ ๋ ๊น ๋ผ๋ ์๊ฐ์์ ์ถ๋ฐํ ์ฐจ์ธ๋ CSS reset ํ๋ก์ ํธ
โSets CSS properties or values to what they would be if the CSSWG were creating the CSS today, from scratch, and didnโt have to worry about backwards compatibility.โํ์ ๋ธ๋ผ์ฐ์ ํธํ ๊ฑฑ์ ์์ด CSS๊ฐ ๋ธ๋ผ์ฐ์ ์์ ํจ์จ์ ์ผ๋ก ์๋ํ๋๋ก ํ๋ ๊ฒ์ด ๋ชฉํ
ํ์ฌ ์งํ ์ค :)
body font-size:16px -> ์๋ 16px์ด์ง๋ง ์ ์ฉ ์๋ ์์ดํฐ ๋๋ฌธ์ ์จ์ค
๐๐ปโโ๏ธํ๊ณ
CSS ์์!!!๊บ!!!!!!!!ํ์ดํ !!!!!!!!!!!!
์ฃผ์ ๋ฌ์๋๋ ๊ฒ ์ต๊ดํ ํ๊ธฐ
CSS์ ๋ช ์นญ์ CSS3, CSS4๊ฐ ์๋ CSS !!!
๋จธ๋ฆฟ์์ ๊ฐ์ธํ๊ณ ๊ฐ๋๋ค!!!!๐ก๐ก