1. SMACSS ( Scalable and Modular Architecture for CSS )
: CSS๋ฅผ [๊ธฐ๋ณธ(base), ๋ ์ด์์(layout), ๋ชจ๋(module), ์ํ(state), ํ ๋ง(theme)]5๊ฐ์ง๋ฅผ ๋ฒ์ฃผํ๋ก ํจํดํ ํ๊ณ ์ ํจ = categorization
1. Base.css [= reset.css]
body, p, table, form, fieldset, legend, input, button ... {
margin: 0;
padding: 0;
}
2. layout : ์ฃผ์์(id) + ํ์์์(class)
์ : 2๊ฐ์ ๋ ์ด์ ์คํ์ผ์ ์ฌ์ฉํ ๊ฒฝ์ฐ [ 1.์ ์ฐํ๋ ์ด์์ 2.๊ณ ์ ์ ๋ ์ด์์ ]
#header {
width: 400px;
}
#aside {
width: 30px;
}
// ํ์ ์์
.l-width #header {
width: 600px;
padding: 10px;
}
.l-width #aside {
width: 100px
}
3. module : ์ฌ์ฌ์ฉ๊ฐ๋ฅํ ์์
.title{...}
.title-sub{...}
.title-pop{...}
4. state : ์์์ ์ํ๋ณํ๋ฅผ ํํ
.is-error { ... }
.is-hidden { ... }
.is-disabled { ... }
// another Ex
.tab {
background-color: purple;
color: white;
}
.is-tab-active {
background-color: white;
color: black;
}
5. theme : ์ ํ์ ์ผ๋ก ์คํ์ผ ์ฌ์ ์ธ ( suffix ์ li- ๋ฅผ ๋ถ์ฌ์ ์ฌ์ฉ )
// in module-name.css
.mod {
border: 1px solid;
}
// in theme.css
.mod {
border-color: blue;
}
๊ณต์์ฌ์ดํธ : http://smacss.com/book/type-theme
2. BEM( Block, Element, Modifier ) / ๋ธ๋ก, ์์, ์์
1. Block
: ์ฌ์ฌ์ฉ๊ฐ๋ฅํ ์์ญ๋ค [ header, footer, navigation... ] ์ด๋ฉฐ, ์ข ์๋์ง์๋ ๋ ๋ฆฝ์ ์ธ ํ๋์ ์ํ.
ํ๋์ ๋จ์ด๋ฅผ ์ฌ์ฉํ๋ ๊ธธ์ด์ง๊ฒฝ์ฐ -๋ฅผ ์ฌ์ฉํ๋ค
.head{...}
.block{...}
.header-navigation{...}
.header-popup{...}
2. Element
: Block์ ๋ด๋ถ ๊ตฌ์ฑ์ ํํ, ๋๊ฐ์ underscores๋ก ํ๊ธฐํ๋ฉฐ ์์ฑ์ ํผํด์ ์ฌ์ฉ
"๋ธ๋ก์ด๋ฆ__์์์ด๋ฆ" ์ผ๋ก ํ๊ธฐ
.header { ... }
.block__elem { color: #042; }
// NOT GOOD
.block .block__elem { color: #042; }
div.block__elem { color: #042; }
3. Modifier : ๋ณํ ์ ์๋ ๋ธ๋ญ์ด๋ ์์์ ์ํ ๋๊ฐ์ hyphen(--)์ผ๋ก ํ๊ธฐ
"๋ธ๋ก์ด๋ฆ--์ํ", "๋ธ๋ก์ด๋ฆ__์์์ด๋ฆ--์ํ" ์ผ๋ก ํ๊ธฐ
.block--hidden { ... }
.block__elem--mod { ... }
๋จ์ : ์ฝ๋๋ฅผ ์ง๊ด์ ์ผ๋ก ํ์ ํ๊ธฐ ์ข์ผ๋ ์ด๋ฆ์ด ๊ธธ๊ณ ๋ณต์กํด์ง์์์
๊ณต์์ฌ์ดํธ : http://getbem.com/
3. OOCSS(Object Oriented CSS)
: ์ค๋ณต์ ์ต์ํ,์บก์ํ
: ์ปจํ ์ด๋, ์ปจํ ์ธ ๋ถ๋ฆฌ
<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{๊ณตํต ์คํ์ผ ์ ์}
๋จ์ : ์ฌํ์ฉ์ฑ ๋์์ง, ๋ค์คํด๋์ค๋ก ์ธํ ์ ์ง๋ณด์์ ์ด๋ ค์๊ณผ ๋ณต์ก๋ ์์น
๊ณต์์ฌ์ดํธ : http://oocss.org/
* ๊ฒฐ๋ก
* 3๊ฐ์ง ๋ฐฉ๋ฒ๋ก ์ด ์งํฅํ๋ ์
1. ์ฝ๋์ ์ฌ์ฌ์ฉ์ฑ
2. ์ฌ์ด ์ ์ง๋ณด์(ํจ์จ์ฑ)
3. ํ์ฅ๊ฐ๋ฅ์ฑ
4. ๊ตฌ์กฐ, ์คํจ ๋ถํ
* 3๊ฐ์ง ๋ฐฉ๋ฒ๋ก ์ด ์ง์ํ๋ ์
1. ์์กด์ ์ธ ์คํ์ผ [ .class p{...} ]
2. Tag ์ง์ ์ ๊ทผ [ div.class{...} ]
** ์ฐธ์กฐ
https://medium.com/@jinminkim_50502/css-bem-smacss-oocss-9e4d6beb0a38
https://wit.nts-corp.com/2015/04/16/3538
'๊ฐ๋ฐ ๐พ > HTML,CSS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๊ฐ์ด๋ฐ์ ์ข์ฐ๋ก ํผ์ณ์ง๊ฒ ํ๊ธฐ (0) | 2021.06.13 |
---|---|
์ฒดํฌ๋ฐ์ค CSS ์ปค์คํ (0) | 2021.06.06 |
์์ฃผ์ฐ๋ css ์ ๋ฆฌ (0) | 2021.02.05 |
ํญ ๊ตฌํํ๊ธฐ - html, css, jquery (0) | 2021.02.03 |
๋ชจ๋ฐ์ผ๊ฐ๋ฐ์ ์์์ฃผ๋ฉด ์ข์ HTML/CSS (0) | 2019.11.18 |