사소한 개발지식/로드맵(FE)

[로드맵] FrontEnd - CSS 심화 #1

2023. 2. 3. 20:01
목차
  1. 1. BEM
  2. BEM의 기본 구조
  3. Block / Element / Modifier
  4. Block
  5. Element
  6. Modifier
  7. 예제
728x90
반응형

Front-end 로드맵 중 CSS/JavaScript 심화부분 - 드림코딩

https://www.youtube.com/watch?v=TTLHd3IyErM - 드림코딩 Front-end 로드맵 영상

CSS 심화

1. BEM

BEM의 기본 구조

BEM은 Block, Element, Modifier를 뜻한다. 3가지 요소와 __ / -- 구분자를 사용하여 클레스 네임을 만들어서 css를 관리하는 방법론을 BEM 방법론이라고 한다.

.block__element--modifier {
    color: red;
}

.

Block / Element / Modifier

Block

재사용 가능한 기능적으로 독립적인 페이지 컴포턴트. 즉, 어딘가에 종속되지 않고 어디서든 재사용할 수 있는 요소를 말한다.

Block 구분

 

Element

Block을 구성하는 단위. 자신이 속한 Block 내에서만 의미를 가진다. 재사용 X

Element 구분

<!-- 잘못된 예 search-form__content__input, search-form__content__button X-->
<form class="search-form">
  <div class="search-form__content">
    <input class="search-form__content__input"/>
    <button class="search-form__content__button">Search</button>
  </div>
</form>

<!-- 올바른 예 -->
<form class="search-form">
  <div class="search-form__content">
    <input class="search-form__input"/>
    <button class="search-form__button">Search</button>
  </div>
</form>

 

Modifier

Block이나 엘리먼트의 속성. 다르게 생기거나, 다르게 동작하는 Block이나 Element를 만들 때 사용

Modifier 구분

<!-- boolean 타입 -->
<ul class="tab">
  <li class="tab__item teb__item--focused">Tab 1</li>
  <li class="tab__item">Tab 2</li>
  <li class="tab__item">Tab 3</li>
</ul>

<!-- key-value 타입 -->
<div class="column">
  <strong class="title">일반 로그인</strong>
  <form class="form-login form-login--theme-normal">
    <input type="text" class="form-login__id"/>
    <input type="password" class="form-login__pw"/>
  </form>
</div>

.

예제

<div class="header">
  <div class="header__logo">Logo</div>
  <div class="header__search search">
    <form class="search__form">
      <input type="text" class="search__input" />
      <button class="search__btn">검색</butoton>
    </form>
  </div>
  <div class="header__nav nav">
    <div class="nav__item nav__item--new">이벤트</div>
    <div class="nav__item">카테1</div>
    <div class="nav__item nav__item--last">카테2</div>
  </div>
</div>

 

 

728x90
반응형
저작자표시 (새창열림)
  1. 1. BEM
  2. BEM의 기본 구조
  3. Block / Element / Modifier
  4. Block
  5. Element
  6. Modifier
  7. 예제
'사소한 개발지식/로드맵(FE)' 카테고리의 다른 글
  • [로드맵] FrontEnd - CSS 심화 #3
  • [로드맵] FrontEnd - CSS 심화 #2
  • [로드맵] FrontEnd - JavaScript #2
  • [로드맵] FrontEnd - JavaScript #1
KimBY
KimBY
웹개발과 관련된 개발지식 모음
B.Y Kim의 개발노트웹개발과 관련된 개발지식 모음
KimBY
B.Y Kim의 개발노트
KimBY
전체
오늘
어제
  • 분류 전체보기 (99)
    • 사소한 개발지식 (49)
      • PHP (2)
      • JavaScript (15)
      • NodeJS (0)
      • JAVA (2)
      • 잡?지식 (4)
      • 로드맵(FE) (22)
      • React (4)
    • 개발노트 (6)
      • 포트폴리오사이트 (6)
    • 프로그래머스 (33)
      • Level1(JS) (0)
      • Level2(JS) (33)
    • 백준알고리즘 (11)
      • 단계별로 풀어보기3(for문) (11)
    • 잡담 (0)

인기 글

최근 글

최근 댓글

태그

  • FE로드맵
  • react
  • 로드맵
  • frontend
  • CSS
  • Level2
  • javascript
  • 백준알고리즘
  • 프로그래머스
  • 단계별로풀어보기
hELLO · Designed By 정상우.
KimBY
[로드맵] FrontEnd - CSS 심화 #1
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.