CSS๋ Cascading Style Sheet์ ์ฝ์ด๋ก, html์ <link>
๋ก ์ฐ๊ฒฐํ์ฌ ์นํ์ด์ง๋ฅผ ๋์์ธ์ ์ผ๋ก ๊พธ๋ฏธ๋ ์ญํ ์ ํ๋ค.
<link rel="stylesheet" href="style.css" />
cssํ์ผ์ ์ ์ฅ ์์น์ ๋ฐ๋ผ href ๋ถ๋ถ์ ๋ฐ๋ ์ ์๋ค.
<div style="color: red; background-color: blue;">hello< /div>
<style>
div {
color: red;
background-color:blue;}
</style>
!important
๊ฐ ์ ํ๋ฉด ์์ธ์ ์ผ๋ก ๊ฐ์ฅ ์ฐ์ ์์๊ฐ ๋์์ง๋ค.selector {
property: property-value;
}
property
๋ผ๊ณ ๋ถ๋ฅธ๋ค.์ ์ฒด ์ ํ์
*
font, color ์์ฃผ ์ฐ์ด๋ ํธ
ํ๊ทธ ์ ํ์
ex. h1
, div
, ...
BUT ํ๊ทธ ๋ค์์ผ๋ก ์คํ์ผ ์ ์ฉ ์ ๋ถํธํ๋ฏ๋ก, ์ฌ๋งํ๋ฉดclass
๋ id
์ฌ์ฉ
class ์ ํ์
.classname
cf) ํด๋์ค ๋์ ์
๋ ฅ
<p class="orange bg-red">
orange์ bg-red ๋ชจ๋ class๋ก ์ง์
#idname
div .apple
div > .apple
h1 + ul
h1 ~ ul
cf) a์ด๋ฉด์ b์ธ ๊ฒ ์ ํ
#first.apple : "id=first"์ด๋ฉด์ "class=apple" .apple#first : ์์ ๋์ผ #first .apple : id="first"์ ํ์ ์์ ์ค class="apple" .apple #first : class="apple"์ ํ์ ์์ ์ค id="first"
๋์ด์ฐ๊ธฐ ์ ๋ฌด์ ๋ฐ๋ผ ์๋ฏธ ๋ณํ!
๋ฌถ์์ผ๋ก ํด์
ex.
.fruits span:first-child{
color: yellow;
}
=> fruits ํด๋์ค ํ์์์
์ค span์ด ์ฒซ๋ฒ์งธ ์์์ด๋ผ๋ฉด
, ํฐํธ๋ฅผ ๋
ธ๋์์ผ๋ก.
<div class="fruits">
<span>tomato</span>
</div>
html์ด ์์ฒ๋ผ ์์ฑ๋์ด์ผ ์ค์ ์ ์ฉ.
๊ฐ์์ ํ์๋ ํฌ๊ฒ 3๊ฐ์ง ๊ฒฝ์ฐ๋ก ๋๋ ์ ์๋ค.
1๏ธโฃ ์ฌ์ฉ์์ ๊ฐ์ ์ํฉ์ ๋ฐ๋ผ
:hover
๋ง์ฐ์ค๋ฅผ ์ฌ๋ฆฐ ๋์
:active
๋ง์ฐ์ค๋ก ํด๋ฆญํ๋ ๋์
:visited
์ด๋ฏธ ๋ฐฉ๋ฌธํ ๋งํฌ
:focus
ํน์ ์์๊ฐ ํฌ์ปค์ค ๋๋ฉด
2๏ธโฃ ์์์ ์ํฉ์ ๋ฐ๋ผ
:first-child
์์์ ์ฒซ๋ฒ์งธ ์์
:last-child
์์์ ๋ง์ง๋ง ์์
:nth-child()
์์์ n๋ฒ์งธ ์์
cf. n๋ฒ์งธ ์์ ๋ฐ๋ณต
n=0๋ถํฐ ์์
span:nth-child(2n)
=> 0, 2, 4, ... even
span:nth-child(2n+1)
=> 1, 3, 5, ... odd
3๏ธโฃ ํน์ ์์ ๋ถ์
:not()
::before
: ์์ ์์ ์ถ๊ฐ::after
: ์์ ๋ค์ ์ถ๊ฐ<div class="before-el">hello</div>
div.before-el::before {
content: "HOT";
background-color:red;
color: white;
font-size: 12px;
border-radius: 2px;
}
input์ ์ฃผ๋ก ์ฌ์ฉ
[property="property_value]
ex.
input[type="text"] {
background-color: aqua;
}
input:not([placeholder]) {
background-color: brown;
}
!important
> inline
> id
> ๋ณตํฉ
> class/attr/pseudo
> tag
> *
font-size
: ํฐํธ ํฌ๊ธฐ ์ค์
:root {
color: gray;
}
font-weight
: ํฐํธ ๊ตต๊ธฐ ์ค์
font-style
: ์ดํค๋ฆญ์ฒด ๋ฑ ํฐํธ ์คํ์ผ ์ค์
font-family
: ์ ์ฉํ font
cf) ํฐํธ ์ฌ์ดํธ
google fonts
๋๋
width
: ๋๋น
height
: ๋์ด
max-
: ์ต๋ ๋๋น/๋์ด
min-
: ์ต์ ๋๋น/๋์ด
border
: ํ
๋๋ฆฌ
margin
: ํ
๋๋ฆฌ ๋ฐ space
padding
: ํ
๋๋ฆฌ ์ space
border-box
(content+padding+border)
padding ์ค์ ์ content์ width์ height๊ฐ padding ๊ฐ๋งํผ (+)(-) ๋ณํ
ex.
content-box
(only content)
padding ์ค์ ์ content์ width์ height์ ๊ทธ๋๋ก ์ ์ง
ex.
๋ ์ค ํ๋๋ก ํต์ผํ์ฌ ์์ฑํ๋ ๊ฒ ํ์ ์ ์ข์!
/* */
( Cmd or Ctrl + /)
์ด๋ฆ์ด ๊ธธ ๋ css ๋ฌธ๋ฒ์์๋ -(ํ์ดํ)
๋ก ์ฐ๊ฒฐ
ex. bg-red
layout -> interior ์์ด๋ฏ๋ก html์์ class/id ๋ฑ ์์ฑ ํ css ์์
ํธ๋ํฐ์ ๋ง์ฐ์ค๊ฐ ์์ผ๋ hover
๊ธฐ๋ฅ์ด ์๋ค.
๋ฌธ๋ฒ๋ณด๋ค๋ ๋ง์ด ์จ๋ณด๋ฉฐ ๊ฐ ์ตํ๊ธฐ๊ฐ ์ค์
SeSac ์์ ์์ ๊ฐ๋ฐ์๋๊ตฌ๋ก ์ ํ ํํ์ด์ง์ css์์๋ค์ ์ญ์ ํด ๋ณธ ๊ฒ ์ธ์์ ์ด์๋ค. ๋ผ๋์ธ html์ ์์ฃผ ๋จ์ํ๊ณ ํฌ๋ฐํ๋๋ฐ, hyepertext๋ผ๋ ๋ช ์นญ๋๋ก ๋ค๋ฅธ ์์๋ฅผ ๋งํฌ๋ก ๋ง๋ ์ ์๊ธฐ์ ๋ฌด๊ถ๋ฌด์งํ ๊ฒ ๊ฐ๋ค.
๊ทธ๋์ ๋ง์ ์ด๋ค์ด ์ฌ์ฉํ๋ ์นํ์ด์ง๋ ์ด๋ค ์์ผ๋ก ๋ณ์๋ช ์ ์ค์ ํ๊ณ , ์์ญ์ ๋๋๊ณ , ์๋ํ๋์ง ๋ณต์ต ๊ฒธ ์ดํด๋ณด์๋ค.
<div id="header" role="banner">
ํค๋ ๋ถ๋ถ์ ๋ฐ๋ก <header>
ํ๊ทธ๋ฅผ ์ฐ์ง ์๊ณ (ํ์ด์ง ์ ์ฒด๊ฐ ๋ค div์ด๋ค), div์ ํด๋์ค๋ช
์ header๋ก ์ฃผ์๋ค.
div์role
์ด๋ผ๋ ์์ฑ์ด ์๋ ๋ชจ์์ด๋ค.
ํค๋์ content๋ 1280x262์ด๊ณ , margin์ด ์ข์ฐ 72.5px์ด๋ค.
box-sizing: content-box;
<button
id="topAsideButton"
type="button"
class="btn_menu"
aria-haspopup="menu"
aria-expanded="false">
<span class="blind">ํ์ฅ ์์ญ</span>
::after
</button>
:hover
ํ์ ๋<div class="tooltip_box"> ~ </div>
'๋ฐ๋ก๊ฐ๊ธฐ'๋ผ๋ ๋ฉ์์ง ์ฐฝ์ด ์๋์ ์๊ธด๋ค. ์์ ์ ์ div ์์ ์จ์์ ๊ฒ ๊ฐ์๋ฐ ํด๋ฆญ์ ํ๋ฉด ํธ๋ฒ๋ฅผ ๋ฒ์ด๋๋ฏ๋ก ํ์ธํ ์๊ฐ ์๋ค..
์ด๋ป๊ฒ ์งฐ์์ง ๋ด๊ฐ ์๋ ๋ฒ์ ํ์์ ์์ฑํด๋ดค๋ค.
<span class="btn_hover_msg">๋ฐ๋ก๊ฐ๊ธฐ</span>
#header .header_innder .menu_area
.btn_hover_msg {
font-size: 20px;
padding: 10px 15px;
border: 1px solid green;
border-radius: 20%;
}
์์ ๋พฐ์กฑํ ๋งํ์ ์ ์์ด์ฝ์ผ๋ก ์ถ๊ฐํ๋ฉด ๋๋ค๊ณ ๋ค์๋๋ฐ ๋ฐฉ๋ฒ์ ์์ง ๋ชจ๋ฅด๊ฒ ๋ค.
aria-expanded=true
์ผ ๊ฒฝ์ฐ::before
๊ณผ ::after
๋ชจ๋ ์กด์ฌํ๋ค.#header .header_inner
.menu_area .btn_menu[aria-expanded=true]::before {
content: "";
display: block;
position: absolute;
top: 1px;
left: 1px;
width: 44px;
height: 44px;
border-radius: 50%;
background-color: #e7eced;
}
์ฆ ๋ฒํผ์ ๋๊ทธ๋ ํ์์น ์ด ::before
์ ์ญํ ๊ฐ๋ค.
position:absolute
์ ๋ํ ๊ณต๋ถ๋ฅผ ํด์ผ ์ด๋ป๊ฒ ์๋ํ ๊ฑด์ง ์ ์ ์์ ๊ฒ ๊ฐ๋ค.
๋ฐฐ์ฐ๊ณ ๋์ ์์ ํ๊ธฐ๋ก!
์น ํ๊ฒฝ์์๋ hover ๊ธฐ๋ฅ์ ์ธ ์ ์์ด์ ํ ์คํธ๊ฐ ์๊ธฐ๋ ์์ผ๋ก(ex. ๋ฐ๋ก๊ฐ๊ธฐ) ์ฌ์ฉ์์ ์์ง์(ํด๋ฆญ)์ ์ ๋ํ ์ ์๋๋ฐ ๋ชจ๋ฐ์ผ ํ๊ฒฝ์ ๊ทธ๊ฒ ๋ถ๊ฐ๋ฅํ๋ค. ๋ฐฐ์ง๊ฐ hover ์ญํ ์ ๋์ ํ๊ณ ์๋ ๊ฒ ์๋๊ฐ ์ถ๋ค. ์์ฃผ ์๊ทธ๋งํ ๋นจ๊ฐ ๋๊ทธ๋ผ๋ฏธ๋ผ๋ ๋ณด์ด๋ฉด ์ผ๋จ ๋๋ฅด๊ฒ ๋๋ ๊ฑธ ๋ณด๋ฉด.
a์ด๋ฉด์ b์ธ(ex. input์ด๋ฉด์ ํด๋์ค๋ช
์ด "username") ๊ฒฝ์ฐ ๋์ด์ฐ๊ธฐ ์์ด ์ธ ์ ์๋จ ๊ฑธ(input.username
) ๋ชฐ๋ผ์ ์ธ๊ฐ์ผ๋ก ๊ณต๋ถํ์ ๋ ์ ํ์๊ฐ ์ฌ๋ฌ๊ฐ ์์์ง๋ฉด ํท๊ฐ๋ ธ๋ค. ๊ฐ์ ๋ค์ผ๋ฉด์ ์ํ ํ๋ค.
๊ทธ๋ฆฌ๊ณ ํน์ ํด๋์ค๋ง์ผ๋ก๋ ๋ช ์ํ ์ ์๋๋ฐ ์ ๋ถ๋ชจ ์ด๋ฆ๋ถํฐ ๋์ดํ๋์ง ์ด๋ ดํํ๋ค.
๋ค์ด๋ฒ์์ ๊ฐ๋ฐ์๋๊ตฌ๋ก ๊ฒ์ํด๋ณด๋, ๋ณ์๋ช
์ด ๋ช
์พํ๋ฉด ํค๋ > ํค๋_์ด๋ > ๋ฉ๋ด_์์ญ > ๋ฒํผ
์ด๋ผ๊ณ ์ง๊ด์ ์ผ๋ก ์ดํดํ ์ ์์์ ๋๊ผ๋ค. ์น์
์ ์ ๋๋์ด ์ด๋ฆ์ ์ ๋ช
์ํ๋ฉด ๋๊ฐ์ ์ธ๋ถ์ธ๋ ํ๋์ ์ดํดํ ์ ์๋ ์ ๋๊ฐ ๋๋ค.. ํ์
ํ ๋ ์ ๋ง ๋์์ด ๋๊ฒ ๊ตฌ๋ ์ถ๋ค.
๋, ์ ํ์๋ง๋ค ์ฐ์ ์์๊ฐ ์์ด์ ๋งจ์ฒ์๋ง ์์ด๋๋ก ๋ช ์ํ๊ณ ์ดํ์ ํด๋์ค๋ก ์ ํํ ๊ฒ ๊ฐ๋ค. ์์ div๋ ์์ด๋์ ํด๋์ค ๋๋ค ์๋๋ฐ ํด๋์ค๋ง์ผ๋ก ๊ณ ๋ฅธ ๊ฒ์ ๋ณด๋ฉด. ๊ฒ๋ค๊ฐ ์ด๋ฆ๋ ํด๋์ค๊ฐ ํจ์ฌ ์ฝ๊ธฐ ์ข๋ค.