BEM은 block, element, modifier의 약어이며 매우 유용한 명명 규칙입니다. 그러면 프런트 엔드 코드를 더 쉽게 이해하고 더 엄격하게 만들 수 있습니다. 다음으로 구체적인 bem 명명 규칙을 살펴보겠습니다.
1 BEM 명명 규칙이란 무엇입니까?
Bem은 블록, 요소 및 수정자의 약어로서 제안된 프런트 엔드 CSS 명명 방법론입니다. Yandex 팀이 제공합니다.
BEM은 간단하고 매우 유용한 명명 규칙입니다. 프런트엔드 코드를 더 쉽게 읽고 이해하고, 더 쉽게 공동 작업하고, 더 쉽게 제어하고, 더 강력하고 명확하고 더 엄격하게 만드세요.
1.1 BEM 명명 패턴
BEM 명명 규칙 패턴은 다음과 같습니다.
.block {} .block__element {} .block--modifier {}#🎜 🎜#
- block은 더 높은 수준의 추상화 또는 구성 요소를 나타냅니다.
- block__element는 .block의 자손을 나타내며 전체적으로 완전한 .block을 형성하는 데 사용됩니다.
- block--수정자는 .block의 다양한 상태 또는 버전을 나타냅니다.
.sub-block__element {} .sub-block--modifier {}
1.2 BEM 명명법의 이점
BEM 핵심은 더 많은 설명과 더 명확한 구조를 얻을 수 있고, 이름에서 특정 마크의 의미를 알 수 있다는 것입니다. 따라서 HTML 코드의 class 속성을 보면 요소 간의 관계를 알 수 있습니다. 기존 명명법 예:<p class="article"> <p class="body"> <button class="button-primary"></button> <button class="button-success"></button> </p> </p>이 작성 방법은 DOM 구조 및 클래스 이름 지정에서 사용할 수 있습니다. 각 요소의 의미를 이해하지만 실제 계층 관계를 명확히 할 수는 없습니다. CSS를 정의할 때 계층적 선택기를 사용하여 제약 조건 범위를 제한하여 구성 요소 간 스타일 오염을 방지해야 합니다. BEM 명명 방법을 사용한 예:
<p class="article"> <p class="article__body"> <p class="tag"></p> <button class="article__button--primary"></button> <button class="article__button--success"></button> </p> </p>BEM 명명 방법을 통해 모듈 계층 관계 간단합니다. CSS를 작성할 때 계층적 선택을 너무 많이 할 필요가 없습니다.
2 BEM 명명법을 사용하는 방법
2.1 BEM 형식을 사용해야 하는 경우 # 🎜🎜#BEM을 사용하는 요령은 BEM 형식으로 언제, 무엇을 작성해야 하는지 알아야 한다는 것입니다.
모든 곳에서 BEM 이름을 사용해야 하는 것은 아닙니다. 명시적인 모듈 관계가 필요할 때 BEM 형식을 사용해야 합니다.
예를 들어, 단지 공개 단일 스타일인 경우 BEM 형식을 사용해도 의미가 없습니다.
.hide { display: none !important; }
2.2 CSS 전처리기에서 BEM 형식 사용하기
BEM의 한 가지 단점은 이름 지정 방법이 길고 보기 흉하며 글이 우아하지 않다는 것입니다. BEM 형식이 가져오는 편리함에 비해 객관적으로 살펴봐야 합니다.
게다가 CSS는 일반적으로 LESS/SASS와 같은 전처리기 언어를 사용하여 작성되며, 해당 언어 기능을 사용하여 작성하는 것이 훨씬 간단합니다.
LESS를 예로 들어보세요:
.article { max-width: 1200px; &__body { padding: 20px; } &__button { padding: 5px 8px; &--primary {background: blue;} &--success {background: green;} } }2.3 널리 사용되는 프레임워크의 구성 요소에 사용됩니다. BEM 형식
Vue.js / React / Angular와 같은 현재 널리 사용되는 프런트 엔드 프레임워크에는 CSS 구성 요소 수준 범위의 컴파일 구현이 있으며 기본 원칙은 CSS 속성 선택기 기능을 사용하여 다양한 구성 요소에 대해 다양한 속성 선택기를 생성하는 것입니다.
이 로컬 범위 작성 방법을 선택하면 더 작은 구성 요소에서는 BEM 형식이 그다지 중요해 보이지 않을 수 있습니다. 그러나 공개 및 전역 모듈 스타일 정의의 경우 여전히 BEM 형식을 사용하는 것이 좋습니다.
또한 외부에 공개된 공용 구성 요소의 경우 일반적으로 스타일 사용자 정의를 위해 이 로컬 범위 메서드는 구성 요소 스타일을 정의하는 데 사용되지 않습니다. 여기서 BEM 형식을 사용하는 것도 유용합니다.
2.4 .block__el1__el2 형식을 피하세요.깊게 중첩된 DOM 구조에서는 지나치게 긴 스타일 이름 정의를 피해야 합니다.
3 요약BEM에서 가장 어려운 부분 중 하나는 범위의 시작과 끝, 그리고 언제 사용할지 여부를 파악하는 것입니다. 그것을 사용하기 위해. 지속적인 사용 경험이 쌓이면 점차 사용법을 알게 될 것이며 이러한 문제는 더 이상 문제가 되지 않을 것입니다. 좋은 기술이나 나쁜 기술은 없으며 올바른 기술만이 최고입니다.
관련 추천:
BEM 구문 상세 설명[English] BEM을 사용하여 CSS code_html/css_WEB-ITnose위 내용은 CSS BEM 명명 규칙은 무엇입니까? BEM 명명 규칙 요약(상세)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

나는 다른 날이 질문을 받았다. 나의 첫 번째 생각은 : 이상한 질문입니다! 특이성은 선택기에 관한 것이며 At-Rules는 선택기가 아니므로 ... 무의미합니까?

그렇습니다. 당신은 할 수 있습니다. 그리고 그것은 실제로 어떤 순서로 중요하지 않습니다. CSS 전 처리기가 필요하지 않습니다. 일반 CSS에서 작동합니다.

CSS 및 JavaScript (및 이미지 및 글꼴 등)와 같은 자산에 멀리 떨어진 캐시 헤더를 설정해야합니다. 브라우저를 알려줍니다

많은 개발자들은 CSS 코드베이스를 유지하는 방법에 대해 글을 썼지 만 코드베이스의 품질을 어떻게 측정하는지에 대해 많은 글을 쓰지 않습니다. 물론, 우리는 가지고 있습니다

짧고 임의의 텍스트를 수락 해야하는 양식이 있습니까? 이름이나 다른 것 같습니다. 정확히 무엇을위한 것입니다. 많은 것이 있습니다

나는 프론트 컨퍼런스를 위해 스위스 취리히로 향하게되어 매우 기쁩니다 (그 이름과 URL을 사랑합니다!). 나는 전에 스위스에 가본 적이 없기 때문에 나는 흥분했다

소프트웨어 개발에서 제가 가장 좋아하는 개발 중 하나는 서버리스의 출현이었습니다. 세부 사항에 푹 빠지는 경향이있는 개발자로서

이 게시물에서는 들어오는 데이터를 위해 동적 경로를 만드는 방법을 보여주기 위해 NetLify에 구축하고 배포 한 전자 상거래 상점 데모를 사용합니다. 상당히입니다


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)
