CSS λ°©λ²λ‘ μ CSSμ½λλ₯Ό 무μ§μ νκ² μμ± ν λ μ€λ λ¬Έμ μ λ€μ 보μ νκ³ μ μΌκ΄λκ³ μ²΄κ³μ μΈ λ°©λ²μ μ μνλ λ°©λ²λ‘ μ΄λ€.
CSSμλ μμ±λ μ½λλ₯Ό μ½κ² νμ
νκ³ μ μ§λ³΄μμ± κΉμ§ κ³ λ €νλ€λ©΄ λͺ
ννκ³ μΌκ΄μ±μλ κ·μΉμ΄ νμνλ€. BEM
, SMACSS
, OOCSS
λ μΌκ΄λκ³ μ²΄κ³μ μΈ λ°©λ²μ κ°μ§ CSS λ°©λ²λ‘ λ€μ΄λ€.
3κ°μ§ λ°©λ²λ‘ μ μμ±λ°©μμ΄ λ¬λΌλ μλ μΈκ°μ§λ 곡ν΅μ μΌλ‘ μ€μμνλ€.
- μνν μ μ§λ³΄μλ₯Ό μν¨
- μ½λμ μ¬μ¬μ©μ±μ λμ΄κΈ° μν¨
- ν΄λμ€λͺ λ§μΌλ‘λ λ¬΄μ¨ λ΄μ©μΈμ§ μμΈ‘ν μ μκ² ν¨
λΈλ‘(Block)
, μμ(Element)
, μν(Modifier)
λ‘ κ΅¬λΆνμ¬ ν΄λμ€ μμ±νλ©° μ격ν λ€μ΄λ° κ·μΉμ κ°μ§λ€. μ½λλ₯Ό μ§κ΄μ μΌλ‘ νμ
ν μ μμ§λ§ μ΄λ¦μ΄ κΈΈκ³ λ³΅μ‘ν΄ μ§μ μλ€.
Block
: μ¬μ¬μ© κ°λ₯ν μμ(header, footer, navigationβ¦), νλμ λ¨μ΄λ₯Ό μ¬μ©νλ κΈΈμ΄μ§ κ²½μ° (-)λ₯Ό μ¬μ©
.header {
...;
}
.block {
...;
}
.header {
...;
}
.header__link {
...;
}
.header__tap {
...;
}
.header__tap__item {
...;
}
.header--hide {
...;
}
.header__tap--big {
...;
}
.header__tap--big {
...;
}
λ²μ£Όν(categorization)λ‘ ν¨ν΄ν νκ³ μ νλ λ°©λ²λ‘ μ΄λ€. κΈ°λ³Έ(base), λ μ΄μμ(layout), λͺ¨λ(module), μν(state), ν λ§(theme) λ€μ―κ°μ§μ λ²μ£Όλ₯Ό μ μνλ€.
β SMACSS μ¬μ©μμλ λνμ μΌλ‘ μλμ 4κ°μ§ μ μμ¬νλ€μ΄ μ‘΄μ¬νλ€.
- νμλ CSSμ λ ν° μ¬μ©κΈμ§
- Id μ λ ν° μ¬μ©κΈμ§
- !Important μ¬μ©κΈμ§
- λ€λ₯Έ κ°λ°μλ€μ΄ μ΄ν΄ν μ μλλ‘ class μ΄λ¦μ μλ―Έμκ² μ§μ΄μΌ ν¨
body,
p,
table,
form,
fieldset,
legend,
input,
button ... {
margin: 0;
padding: 0;
}
#header {
width: 400px;
}
#aside {
width: 30px;
}
.layout-width #header {
width: 600px;
padding: 10px;
}
.layout-width #aside {
width: 100px;
}
.stick {
...;
}
.stick-name {
...;
}
.stick-number {
...;
}
.is-error {
...;
}
.is-hidden {
...;
}
.is-disabled {
...;
}
/* base.css */
.header {
background-color: green;
}
/* theme.css */
.header {
background-color: red;
}
μ€λ³΅μ μ΅μννκ³ μΊ‘μνλ₯Ό μμΉμΌλ‘ νλ€. 곡ν΅λ λΆλΆμ μ°Ύμ μ΄λμλ μ¬νμ© ν μ μλ€λ μ₯μ μ΄ μλ€. λ°λ©΄μ λ€μ€ ν΄λμ€ μ¬μ©μΌλ‘ μ μ§λ³΄μμ μ΄λ €μκ³Ό κ°λ μ±μ΄ λ¨μ΄μ§μ μλ€.
<div class="header common-width">Header</div>
<div class="footer common-width">Footer</div>
.header{
position: fixed;
top: 0;
}
.footer{
position: absolute;
bottom: 0;
}
.common-width{
width: 700px;
margin: 0;
}
<div class="btn skin tel">tel</div>
<div class="btn skin">email</div>
.btn{κ³΅ν΅ μ€νμΌ μ μ}
.skin{κ³΅ν΅ μ€νμΌ μ μ}