찾다
웹 프론트엔드CSS 튜토리얼CSS의 BEM 명명 규칙은 무엇입니까?

CSS의 BEM 명명 규칙은 무엇입니까?

Nov 13, 2020 pm 04:58 PM
css명명 규칙

CSS의 BEM 명명 규칙은 무엇입니까?

一 BEM 명명 규칙이란 무엇인가요?

Bem은 Block, Element, Modifier의 약어입니다. Yandex팀에서 제안하는 프런트엔드 CSS 명명 방법론입니다.

(학습 영상 공유: css 영상 튜토리얼)

- 밑줄: 특정 블록이나 특정 하위 요소의 여러 단어 사이의 연결 표시를 나타내는 하이픈으로만 사용됩니다.
__ 이중 밑줄: 이중 밑줄은 블록과 해당 하위 요소를 연결하는 데 사용됩니다.
_ 단일 밑줄: 단일 밑줄은 블록 상태 또는 블록의 하위 요소를 설명하는 데 사용됩니다.

BEM은 간단하고 매우 유용한 명명 규칙입니다. 프런트엔드 코드를 더 쉽게 읽고 이해하고, 더 쉽게 공동 작업하고, 더 쉽게 제어하고, 더 강력하고 명확하고 더 엄격하게 만드세요.

1. BEM 명명 패턴

BEM 명명 규칙 패턴은 다음과 같습니다.

.block {}
.block__element {}
.block--modifier {}

각 블록(블록) 이름에는 네임스페이스(접두사)가 있어야 합니다.
블록은 더 높은 수준의 추상화 또는 구성 요소를 나타냅니다.
block__element는 .block의 자손을 나타내며 전체적으로 완전한 .block을 형성하는 데 사용됩니다.
block--수정자는 .block의 다른 상태 또는 다른 버전을 나타냅니다.

두 개의 하이픈과 하나 대신 밑줄을 사용하면 자신의 블록을 단일 하이픈으로 구분할 수 있습니다. 예:

.sub-block__element {}
.sub-block--modifier {}

2. BEM 명명법의 이점

BEM의 핵심은 더 많은 설명과 더 명확한 구조를 얻을 수 있고 이름에서 특정 마크의 의미를 알 수 있다는 것입니다. 따라서 HTML 코드의 class 속성을 보면 요소 간의 관계를 알 수 있습니다.

기존 명명법 예:

CSS의 BEM 명명 규칙은 무엇입니까?

이러한 작성 방식은 DOM 구조 및 클래스 이름 지정에서 각 요소의 의미를 이해할 수 있지만 실제 계층 관계를 명확히 할 수는 없습니다. CSS를 정의할 때 계층적 선택기를 사용하여 제약 조건 범위를 제한하여 구성 요소 간 스타일 오염을 방지해야 합니다.

BEM 명명 방법을 사용한 예:

CSS의 BEM 명명 규칙은 무엇입니까?

BEM 명명 방법을 사용하면 모듈 계층 관계가 간단하고 명확하며 CSS를 작성할 때 계층을 너무 많이 선택할 필요가 없습니다.

2. BEM 명명법을 사용하는 방법

1. 언제 BEM 형식을 사용해야 할까요?

BEM을 사용하는 요령은 BEM 형식으로 언제, 무엇을 작성해야 하는지 알아야 한다는 것입니다. 모든 장소에서 BEM 이름 지정을 사용해야 하는 것은 아닙니다. 명시적인 모듈 관계가 필요할 때 BEM 형식을 사용해야 합니다. 예를 들어 공개 스타일이 하나만 있는 경우 BEM 형식을 사용하는 것은 의미가 없습니다.

.hide {    display: none !important;}

2. CSS 전처리기에서 BEM 형식 사용

BEM의 단점은 이름 지정 방법이 길고 보기 흉하다는 것입니다. , 글이 우아하지 않습니다. BEM 형식이 가져오는 편리함에 비해 객관적으로 살펴봐야 합니다. 게다가 CSS는 일반적으로 LESS/SASS와 같은 전처리기 언어를 사용하여 작성되며, CSS의 언어 기능을 사용하여 작성하는 것이 훨씬 간단합니다.

LESS를 예로 들어보세요:

CSS의 BEM 명명 규칙은 무엇입니까?

3 널리 사용되는 프레임워크의 구성 요소에서 BEM 형식을 사용합니다.
Vue.js/React/`Angular와 같이 현재 널리 사용되는 프런트 엔드 프레임워크에는 CSS 구성 요소 수준의 컴파일된 구현이 있습니다. 범위의 경우 기본 원칙은 CSS 속성 선택기 기능을 사용하여 다양한 구성 요소에 대해 다양한 속성 선택기를 생성하는 것입니다.
이 로컬 범위 작성 방법을 선택하면 BEM 형식은 더 작은 구성 요소에서 그다지 중요하지 않을 수 있습니다. 그러나 공개 및 전역 모듈 스타일 정의의 경우 여전히 BEM 형식을 사용하는 것이 좋습니다.
또한 외부에 공개된 공개 구성 요소의 경우 일반적으로 스타일 사용자 정의를 위해 이 로컬 범위 방법은 구성 요소 스타일을 정의하는 데 사용되지 않습니다. 여기서 BEM 형식을 사용하는 것도 유용합니다.

4 .block__el1__el2 형식을 피하세요.
깊게 중첩된 DOM
구조에서는 지나치게 긴 스타일 이름 정의를 피해야 합니다.
최종 레벨은 레벨 4를 넘지 않아야 합니다. 그렇지 않으면 독해의 난이도가 높아집니다

3. 요약

BEM에서 가장 어려운 부분 중 하나는 범위의 시작과 끝, 사용 시기를 명확하게 이해하는 것입니다. 그것을 사용하지 마십시오. 지속적인 사용으로 경험이 쌓이면 점차 사용법을 알게 되고, 이러한 문제는 더 이상 문제가 되지 않습니다. 좋은 기술이나 나쁜 기술은 없으며 올바른 기술만이 최고입니다.

추천 작성 방법 및 스타일

CSS의 BEM 명명 규칙은 무엇입니까?

CSS의 BEM 명명 규칙은 무엇입니까?

관련 추천: CSS 튜토리얼

위 내용은 CSS의 BEM 명명 규칙은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 gxlcms에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
Cohost.org의 잃어버린 CSS 트릭Cohost.org의 잃어버린 CSS 트릭Apr 25, 2025 am 09:51 AM

이 게시물에서 Blackle Mori는 코 호스트의 HTML 지원의 한계를 추진하면서 발견 된 몇 가지 해킹을 보여줍니다. 감히 CSS 범죄자 라벨이 붙어 있지 않도록 감히 사용하십시오.

커서를위한 다음 레벨 CSS 스타일커서를위한 다음 레벨 CSS 스타일Apr 23, 2025 am 11:04 AM

CSS가있는 커스텀 커서는 훌륭하지만 JavaScript를 사용하여 다음 단계로 가져갈 수 있습니다. JavaScript를 사용하면 커서 상태를 전환하고 커서 내에 동적 텍스트를 배치하고 복잡한 애니메이션을 적용하며 필터를 적용 할 수 있습니다.

Worlds Collide : 스타일 쿼리를 사용한 KeyFrame Collision DetectionWorlds Collide : 스타일 쿼리를 사용한 KeyFrame Collision DetectionApr 23, 2025 am 10:42 AM

2025 년에 서로를 ricocheting하는 요소가있는 대화식 CSS 애니메이션은 CSS에서 Pong을 구현할 필요가 없지만 CSS의 유연성과 힘이 증가하는 것은 LEE의 의심을 강화합니다.

UI 효과를 위해 CSS 배경 필터 사용UI 효과를 위해 CSS 배경 필터 사용Apr 23, 2025 am 10:20 AM

CSS 배경 필터 속성을 사용하여 사용자 인터페이스 스타일에 대한 팁과 요령. 여러 요소들 사이에 필터를 배경으로 배경으로 배경으로하는 방법을 배우고 다른 CSS 그래픽 효과와 통합하여 정교한 디자인을 만듭니다.

미소?미소?Apr 23, 2025 am 09:57 AM

글쎄, SVG '의 내장 애니메이션 기능은 계획대로 이상 사용되지 않았다. 물론 CSS와 JavaScript는 부하를 운반 할 수있는 것 이상이지만 Smil이 이전과 같이 물에서 죽지 않았다는 것을 아는 것이 좋습니다.

'예쁜'은 보는 사람의 눈에 있습니다'예쁜'은 보는 사람의 눈에 있습니다Apr 23, 2025 am 09:40 AM

예, 텍스트-랩을위한 점프 : Safari Technology Preview의 예쁜 착륙! 그러나 Chromium 브라우저에서 작동하는 방식과는 다른 점을 조심하십시오.

CSS- 트릭 연대기 XLIIICSS- 트릭 연대기 XLIIIApr 23, 2025 am 09:35 AM

이 CSS- 트릭 업데이트는 Almanac, 최근 Podcast 출연, 새로운 CSS 카운터 가이드 및 귀중한 컨텐츠에 기여하는 몇 가지 새로운 저자의 추가 진전을 강조합니다.

Tailwind ' s @apply 기능은 소리보다 낫습니다Tailwind ' s @apply 기능은 소리보다 낫습니다Apr 23, 2025 am 09:23 AM

대부분의 경우 사람들은 Tailwind ' S 단일 프로퍼 유틸리티 중 하나 (단일 CSS 선언을 변경)와 함께 Tailwind ' s @apply 기능을 보여줍니다. 이런 식으로 선보일 때 @apply는 전혀 약속하는 소리가 들리지 않습니다. 그래서 Obvio

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

안전한 시험 브라우저

안전한 시험 브라우저

안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

Microsoft에서 출시한 강력한 무료 IDE 편집기