키 포인트
BEM 및 SMACSS와 같은 CSS 이름 지정 규칙은 CSS 클래스 선택기에 크게 의존하며 SASS를 사용하면 이러한 선택기를 작성하면 모듈 식적이고 재사용 할 수 있습니다.
-
인 Humanifed-BEM Mixin은 블록 요소 모디퍼 용어를 숨겨 코드 가독성을 향상 시키도록 설계되었지만 일부 개발자에게는 너무 많은 추상화가 필요할 수 있습니다.
-
Sass를 사용하는
는 이 선택기를보다 모듈 식으로 작성하는 데 도움이 될 수 있습니다. 선택기 중첩 및 믹스 인을 사용하면 필요한 API를 구축하기 위해 멋진 - 미친 솔루션을 만들 수 있습니다. 이 기사에서는이 방법들 중 몇 가지를 소개하여 내가 생각하는 각 방법의 장단점을 나열합니다. 기본 선택기 중첩
-
원래 블록 이름을 반복하지 않고 선택기를 둥지 할 수 있다는 것은 SASS에서 장기적인 요구 사항이었습니다. Sass 3.3 에서이 기능이 마침내 소개되었습니다. 베타 기간 동안, 매우 이상한 구문이 처음 사용되었고, 안정적인 버전이 생방송 될 때 나중에 더 나은 구문으로 변경되었습니다. Natalie Weizenbaum 은이 게시물의 변경에 대한 이유를 설명합니다.
pros
bem mixin
<code>.foo { // .foo 的样式 &-bar { // .foo-bar 的样式 } }</code>
<code>.media { // .media 块的样式 &__img { // .media__image 元素的样式 &--full { // .media__image--full 修改后的元素的样式 } } &--new { // .media--new 修饰符的样式 } }</code>
pros
이 버전은 BEM의 작동 방식을 이해하면 이해하기 쉬운 친숙한 API를 제공합니다.<code>.media {} .media__img {} .media__img--full {} .media--new {}</code>
단점
물류는 Mixin 뒤에 숨겨져 있으며, 새로운 선택기와 클래스를 생성하는 것은 무슨 일이 일어나고 있는지 정확히 알지 못한다면 분명하지 않습니다. -
단일 문자 Mixins는 믹스 인이 사용되는 것을 이해하기가 어렵 기 때문에 좋은 생각이 아닐 수도 있습니다. B와 M은 많은 것을 나타낼 수 있습니다.
인간화 된 빵 믹스
최근에, 나는 Anders Schmidt Hansen의 새로운 BEM과 같은 접근법을 읽었습니다. 아이디어는 큰 소리로 읽을 때 의미가있는 일반적인 단어 뒤에 블록 요소 모디퍼 용어를 숨기는 것입니다.
-
이 경우, 요점은 잘 알려진 믹스 인 뒤에 코드를 숨기고 코드가 이야기를하는 것처럼 보이므로 새로운 믹스 인이 실제로 유용합니다.
-
anders는 추가로 사용됩니다 (..) 및 Holds (..) Mixin. 전체 아이디어는 내 시대 (..) Mixin을 상기시켜줍니다. 요소가 우수한 맥락에 따라 스타일이있을 때 사용자 친화적 인 Mixin을 숨기고 뒤에 숨어 있습니다.
pros
이 접근법은 주요 IS (SMACSS에 의해 홍보)를 사용하여 주 수업을 지명하기 시작한 것처럼 코드의 가독성을 향상시키는 데 도움이됩니다.
는 여전히 특정 접근법 (이 경우 BEM)을 고수하지만 개발자가 더 쉽게 사용할 수 있습니다.
단점
<code>@mixin element($element) {
&__#{$element} {
@content;
}
}
@mixin modifier($modifier) {
&--#{$modifier} {
@content;
}
}</code>
더 많은 믹스 인, 더 많은 보조 도구 및보다 안정적인 학습 곡선을 얻기 위해 배울 수있는 것들. CSS 선택기와 같은 간단한 것을 쓰기 위해 많은 믹스 인을 다루는 것을 좋아하는 것은 아닙니다.
이것은 일부 사람들에게는 너무 추상적 일 수 있습니다. 상황에 따라 다릅니다.
<code>.media {
// .media 块的样式
@include element("image") {
// .media__image 元素的样式
@include modifier("full") {
// .media__image--full 修改后的元素的样式
}
}
@include modifier("new") {
// .media--new 修饰符的样式
}
}</code>
최종 생각
<code>.media {
// .media 块的样式
@include e("image") {
// .media__image 元素的样式
@include m("full") {
// .media__image--full 修改后的元素的样式
}
}
@include m("new") {
// .media--new 修饰符的样式
}
}</code>
이러한 기술을 사용하면 SASS에 의해 생성되기 전에 선택기가 실제로 존재하지 않기 때문에 선택기 코드베이스가 검색 될 수 없게됩니다. 선택기 전에 댓글을 추가하면이 문제를 해결할 수 있지만 처음부터 선택기를 작성하지 않겠습니까?
검색 가능한 코드 기반에 관심이있는 경우 새 SASS 기능을 사용하여 모든 선택기 (.B {& __ e {}})를 사용하지 마십시오.
- Kaelig (@kaelig) 2014 년 3 월 12 일
-
어쨌든, 친구, 여기 Sass에서 CSS 셀렉터를 작성하는 것이 가장 인기있는 방법이 있습니다. 나와 당신 사이에 나는 그들을 좋아하지 않습니다. 그리고 그것은 단지 검색 문제 때문이 아니라 큰 문제가 아닙니다.
나는 그들이 해결하려는 문제를 볼 수 있지만 때로는 단순성이 건조하다는 것을 볼 수 있습니다. 루트 선택기를 반복하는 것은 큰 문제가되지 않으며 코드는 중첩되지 않았을뿐만 아니라 CSS에 더 가깝기 때문에 읽기가 더 쉽게 읽을 수 있습니다.
때로는 건조보다 간단합니다.
- Hugo Giraudel (@hugogiraudel) 2015 년 5 월 19 일
SASS 구조화 된 CSS 클래스 선택기 사용에 대한 FAQ
SASS 구조화 된 CSS 클래스 선택기를 사용하는 의미는 무엇입니까?
SASS 구조화 된 CSS 클래스 선택기를 사용하는 것은 깨끗하고 순서가 좋고 효율적인 스타일 시트를 유지하는 데 필수적입니다. Sass (Syntacly Awesome 스타일 시트를 대신하여)는 개발자가 변수, 중첩 규칙, Mixin 및 기능을 사용할 수 있도록 CSS 전처리 업체로 CSS를보다 역동적이고 재사용 할 수 있도록합니다. 구조화 된 클래스 선택기를 사용하면 스타일 계층 구조를 만들어 다른 요소와 스타일 간의 관계를보다 쉽게 이해할 수 있습니다. 이는 CSS 코드의 유지 관리 가능성과 확장 성을 크게 향상시킬 수 있습니다.
Sass에서 와일드 카드 선택기를 사용하는 방법은 무엇입니까?
범용 선택기라고도하는 와일드 카드 선택기는 SASS에서 특정 패턴과 일치하는 요소를 선택하는 데 사용될 수 있습니다. 예를 들어 와일드 카드 선택기 "*"를 사용하여 모든 요소를 선택할 수 있습니다. 그러나 Sass는 와일드 카드 클래스 이름을 직접 지원하지 않습니다. 클래스 이름이 특정 문자열로 시작하는 요소를 선택하려면 속성 선택기 사용과 같은 해결 방법을 사용해야합니다. 예를 들어, 선택기
를 사용하여 클래스 이름이 "접두사"로 시작하는 모든 요소를 선택할 수 있습니다.
Sass의 클래스 선택기와 @extend 지시문을 사용할 수 있습니까?
예, @extend 지시문은 Sass에서 클래스 선택기와 함께 사용할 수 있습니다. @extend 지시문은 한 선택기가 다른 선택기의 스타일을 상속받을 수 있도록합니다. 이는 CSS 코드의 중복성을 줄이는 데 유용합니다. 예를 들어, 동일한 스타일을 많이 공유하는 두 개의 클래스가있는 경우 한 클래스에서 해당 스타일을 정의한 다음 @extend 지시문을 사용하여 이러한 스타일을 다른 클래스에 적용 할 수 있습니다.
SASS를 사용하여 CSS 코드를보다 효율적으로 구성하는 방법은 무엇입니까?
SASS는 CSS 코드를보다 효과적으로 구성하는 데 도움이되는 몇 가지 기능을 제공합니다. 기능 중 하나는 Nesting으로, HTML 구조를 반영하여 다른 선택기의 CSS 선택기를 중첩 할 수 있습니다. 이로 인해 CSS 코드를 쉽게 읽고 유지 관리 할 수 있습니다. 다른 기능은 변수로 재사용 가능한 값을 정의 할 수 있습니다. 이것은 색상, 글꼴 및 간격과 같은 스타일의 일관성을 유지하는 데 유용합니다.
SASS 구조화 된 CSS 클래스 선택기를 사용하기위한 모범 사례는 무엇입니까?
SASS 구조화 된 CSS 클래스 선택기를 사용하기위한 몇 가지 모범 사례가 있습니다. 모범 사례 중 하나는 선택기를 가능한 한 구체적으로 만드는 것입니다. 이를 통해 스타일이 실수로 다른 요소에 영향을 미치는 것을 방지 할 수 있습니다. 또 다른 모범 사례는 의미있는 클래스 이름을 사용하여 요소의 목적 또는 기능을 설명하는 것입니다. 이로 인해 CSS 코드를 쉽게 읽고 유지 관리 할 수 있습니다. 또한 BEM (블록, 요소, 수정 자)과 같은 수업에 일관된 명명 규칙을 사용하여 다른 클래스 간의 관계를보다 쉽게 이해할 수 있도록하는 것이 가장 좋습니다.
- 단일 문자 Mixins는 믹스 인이 사용되는 것을 이해하기가 어렵 기 때문에 좋은 생각이 아닐 수도 있습니다. B와 M은 많은 것을 나타낼 수 있습니다.
- 이 경우, 요점은 잘 알려진 믹스 인 뒤에 코드를 숨기고 코드가 이야기를하는 것처럼 보이므로 새로운 믹스 인이 실제로 유용합니다.
-
anders는 추가로 사용됩니다 (..) 및 Holds (..) Mixin. 전체 아이디어는 내 시대 (..) Mixin을 상기시켜줍니다. 요소가 우수한 맥락에 따라 스타일이있을 때 사용자 친화적 인 Mixin을 숨기고 뒤에 숨어 있습니다.
pros 이 접근법은 주요 IS (SMACSS에 의해 홍보)를 사용하여 주 수업을 지명하기 시작한 것처럼 코드의 가독성을 향상시키는 데 도움이됩니다. 는 여전히 특정 접근법 (이 경우 BEM)을 고수하지만 개발자가 더 쉽게 사용할 수 있습니다.
최종 생각
SASS 구조화 된 CSS 클래스 선택기 사용에 대한
<code>@mixin element($element) {
&__#{$element} {
@content;
}
}
@mixin modifier($modifier) {
&--#{$modifier} {
@content;
}
}</code>
더 많은 믹스 인, 더 많은 보조 도구 및보다 안정적인 학습 곡선을 얻기 위해 배울 수있는 것들. CSS 선택기와 같은 간단한 것을 쓰기 위해 많은 믹스 인을 다루는 것을 좋아하는 것은 아닙니다. <code>.media {
// .media 块的样式
@include element("image") {
// .media__image 元素的样式
@include modifier("full") {
// .media__image--full 修改后的元素的样式
}
}
@include modifier("new") {
// .media--new 修饰符的样式
}
}</code>
<code>.media {
// .media 块的样式
@include e("image") {
// .media__image 元素的样式
@include m("full") {
// .media__image--full 修改后的元素的样式
}
}
@include m("new") {
// .media--new 修饰符的样式
}
}</code>
를 사용하여 클래스 이름이 "접두사"로 시작하는 모든 요소를 선택할 수 있습니다.
예, @extend 지시문은 Sass에서 클래스 선택기와 함께 사용할 수 있습니다. @extend 지시문은 한 선택기가 다른 선택기의 스타일을 상속받을 수 있도록합니다. 이는 CSS 코드의 중복성을 줄이는 데 유용합니다. 예를 들어, 동일한 스타일을 많이 공유하는 두 개의 클래스가있는 경우 한 클래스에서 해당 스타일을 정의한 다음 @extend 지시문을 사용하여 이러한 스타일을 다른 클래스에 적용 할 수 있습니다.
SASS는 CSS 코드를보다 효과적으로 구성하는 데 도움이되는 몇 가지 기능을 제공합니다. 기능 중 하나는 Nesting으로, HTML 구조를 반영하여 다른 선택기의 CSS 선택기를 중첩 할 수 있습니다. 이로 인해 CSS 코드를 쉽게 읽고 유지 관리 할 수 있습니다. 다른 기능은 변수로 재사용 가능한 값을 정의 할 수 있습니다. 이것은 색상, 글꼴 및 간격과 같은 스타일의 일관성을 유지하는 데 유용합니다.
위 내용은 SASS로 CSS 클래스 선택기를 구조화합니다의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

이것은 우리가 양식 접근성에 대해 한 작은 시리즈의 세 번째 게시물입니다. 두 번째 게시물을 놓친 경우 "사용자 초점 관리 : Focus-Visible"을 확인하십시오. ~ 안에

이 튜토리얼은 Smart Forms 프레임 워크를 사용하여 전문적인 JavaScript 양식을 작성하는 것을 보여줍니다 (참고 : 더 이상 사용할 수 없음). 프레임 워크 자체를 사용할 수 없지만 원칙과 기술은 다른 형태의 건축업자와 관련이 있습니다.

CSS Box-Shadow 및 개요 속성은 주제를 얻었습니다. 실제 테마에서 어떻게 작동하는지에 대한 몇 가지 예와 이러한 스타일을 WordPress 블록 및 요소에 적용 해야하는 옵션을 보자.

Svelte Transition API는 맞춤형 전환을 포함하여 문서를 입력하거나 떠날 때 구성 요소를 애니메이션하는 방법을 제공합니다.

이 기사에서 우리는 스크롤 바의 세계로 뛰어들 것입니다. 너무 화려하게 들리지는 않지만 잘 설계된 페이지가 손을 잡고 있습니다.

웹 사이트의 컨텐츠 프레젠테이션을 설계하는 데 얼마나 많은 시간을 소비합니까? 새 블로그 게시물을 작성하거나 새 페이지를 만들 때

NPM 명령은 서버 시작 또는 컴파일 코드와 같은 것들에 대한 일회성 또는 지속적으로 실행되는 프로세스로 다양한 작업을 실행합니다.


핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

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

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구
