찾다
웹 프론트엔드CSS 튜토리얼CSS 선택기의 새로운 사용법에 대한 자세한 설명

몇 년 전 JS 개발의 표준이 jQuery였듯이 이제는 전처리기(sass 등)가 CSS 개발의 표준이 된 것 같습니다. JS의 querySelector는 jQuery의 선택기 아이디어를 활용하고 CSS 선택기도 전처리기 변수 정의, 선택기 중첩 및 코드 블록 재사용과 같은 일반적인 기능을 활용합니다. 이 글에서는 CSS 선택자의 새로운 사용법을 자세히 소개합니다.

Variables

일반적으로 웹 개발을 할 때 아래와 같이 sass를 예로 들어 일련의 변수 정의 사양을 갖게 됩니다


// 颜色定义规范
$color-background : #222
$color-background-d : rgba(0, 0, 0, 0.3)
$color-highlight-background : #333
//字体定义规范
$font-size-small : 12px
$font-size-medium : 14px
$font-size-large : 18px

CSS 변수의 구문은 다음과 같습니다

【변수 선언】

  변수는 --로 시작해야 합니다. 예를 들어 --example-variable: 20px는 --example-varibale 변수에 20px를 할당한다는 의미입니다

변수를 선언하는 문을 모든 요소 내에 배치할 수 있습니다. 전역 변수를 설정하려면 다음과 같이 설정할 수 있습니다. : root, body 또는 html


:root{--bgColor:#000;}

  변수 선언은 일반 스타일 선언문과 동일하며 인라인 스타일도 사용할 수 있습니다


<body style="--bgColor:#000">

【변수 사용】

var() 함수를 사용하여 변수를 사용하면 어디서나 사용할 수 있습니다. 예: var(--example-variable)은 --example-variable


<body style="--bgColor:#000;">
    <p style="width: 100px;height: 100px;background-color: var(--bgColor)"></p>    
</body>

 에 해당하는 값을 반환합니다. var() 함수에는 옵션 매개변수도 있는데, 이 매개변수는 변수가 변경될 때 기본값을 설정하는 데 사용됩니다. 값을 얻을 수 없으면 기본값을 사용하세요


<p style="width: 100px;height: 100px;background-color: var(--bgColor,pink)"></p>

  [참고] CSS 변수의 자세한 사용법은 여기로 이동합니다

@apply

 @apply를 소개하기 전에 먼저 믹싱 매크로 @mixin을 소개하겠습니다. 재사용 가능한 코드 블록을 가리키는 sass에서

 예를 들어 일반 텍스트 오버플로 숨겨진 재사용


@mixin overflow-ellipsis{
    overflow:hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  };
p {
    @include  overflow-ellipsis;
}  

  그리고 애플리케이션 규칙 세트 @apply도 비슷한 기능을 구현합니다. var()와 비교할 때 @apply는 스타일 모음을 나타내고 var()는 단일 스타일 값을 나타냅니다


:root{
  --overflow-ellipsis:{
    overflow:hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  };
}
.title{
  width:200px;
  @apply --overflow-ellipsis;
}

Custom selector

사용자 정의 선택기는 @custom-selector 정의를 통해 제공되며 그 뒤에는 다음이 따릅니다. --그런 다음 사용자 정의 선택기의 이름과 정의해야 하는 선택기가 쉼표로 구분된 여러 개


@custom-selector :--heading h1, h2, h3, h4, h5, h6;

이런 식으로 :--heading이 사용 가능한 선택 선택기가 됩니다


:--heading{
  margin: 0;
}
h1, h2, h3, h4, h5, h6{
   margin: 0; 
}

위의 두 코드는 동일한 효과를 가집니다

Selector 중첩

CSS 규칙에는 반복되는 내용이 많이 포함되어 있습니다


table.colortable td {
  text-align:center;
}
table.colortable td.c {
  text-transform:uppercase;
}
table.colortable td:first-child, table.colortable td:first-child+td {
  border:1px solid black;
}
table.colortable th {
  text-align:center;
  background:black;
  color:white;
}

중첩 구문을 사용한 후의 코드는 다음과 같습니다


table.colortable {
  & td {
    text-align:center;
    &.c { text-transform:uppercase }
    &:first-child, &:first-child + td { border:1px solid black }
  }
  & th {
    text-align:center;
    background:black;
    color:white;
  }
}

사용 시 중첩 스타일 규칙을 사용하려면 상위 규칙과 일치하는 요소를 참조할 수 있어야 합니다. 이는 결국 전체 중첩 지점입니다. 이 목적을 달성하기 위해 이 사양에서는 ASCII 표기법 &

으로 작성된 새로운 선택기인 중첩 선택기를 정의합니다. 중첩 스타일 규칙의 선택기에서 사용될 때 중첩 선택기는 상위 규칙과 일치하는 선택을 나타냅니다. 다른 상황에서 사용하면 아무 의미가 없습니다. (즉, 유효하지만 어떤 요소와도 일치하지 않습니다)

  [참고] 중첩 선택자를 작성하는 두 가지 잘못된 방법은 다음과 같습니다


.foo {
  color: red;
  .bar & { color:blue; }
}
.foo {
  color: red;
  &.bar, .baz { color: blue; }
}

【@nest】

 위의 문제를 해결하기 위해 중첩된 선택기는 & 깨지기 쉬우므로 @nest 선택기를 사용할 수 있습니다. @nest는 중첩된 선택기와 함께 작동하는 한 더 넓은 범위의 응용 프로그램을 제공합니다. &


.foo {
  color: red;
  @nest & > .bar {
    color: blue;
  }
}
//等价于
   .foo { color: red; }
   .foo > .bar { color: blue; }

.foo {
  color: red;
  @nest .parent & {
    color: blue;
  }
}
//等价于
   .foo { color: red; }
   .parent .foo { color: blue; }

.foo {
  color: red;
  @nest :not(&) {
    color: blue;
  }
}
//等价于
   .foo { color: red; }
   :not(.foo) { color: blue; }

  [注意]@nest选择符的两种错误写法如下所示

.foo {
  color: red;
  @nest .bar {
    color: blue;
  }
}
.foo {
  color: red;
  @nest & .bar, .baz {
    color: blue;
  }
}

Finally

변수는 새 버전의 Chrome에서 사용할 수 있지만 CSS 선택기의 다른 새로운 사용은 현재 브라우저에서 지원되지 않습니다. 그러나 CSS 후처리기 postcss의 cssnext 플러그인은 모든 문제를 해결할 수 있습니다

cssnext 공식 웹사이트에 나와 있는 것처럼 오늘부터 내일의 CSS 구문을 사용해 보세요

관련 권장 사항:

CSS 선택기 필드 구문 분석 구현 방법

CSS 선택기 선택기에 대한 자세한 설명

CSS 선택기의 점(.)에 대한 해결 방법

위 내용은 CSS 선택기의 새로운 사용법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
'CSS4'업데이트'CSS4'업데이트Apr 11, 2025 pm 12:05 PM

내가 CSS4¹에 처음으로 차지했기 때문에, 그것에 대해 많은 논의가있었습니다. 나는 여기 다른 사람들로부터 내가 가장 좋아하는 생각을 마무리하려고 할 것입니다. 거기 있습니다

세 가지 유형의 코드세 가지 유형의 코드Apr 11, 2025 pm 12:02 PM

새 프로젝트를 시작할 때마다 원하는 경우 세 가지 유형 또는 카테고리로보고있는 코드를 구성합니다. 그리고 나는 이러한 유형을 적용 할 수 있다고 생각합니다

HTTPS는 쉽습니다!HTTPS는 쉽습니다!Apr 11, 2025 am 11:51 AM

나는 HTTPS의 복잡성을 공개적으로 비난하는 것에 대해 유죄를 선고했다. 과거에는 타사 공급 업체로부터 SSL 인증서를 구매했으며 문제가있었습니다.

HTML 데이터 속성 안내서HTML 데이터 속성 안내서Apr 11, 2025 am 11:50 AM

HTML, CSS 및 JavaScript의 데이터 속성에 대해 알고 싶었던 모든 것.

자바 스크립트의 불변성 이해자바 스크립트의 불변성 이해Apr 11, 2025 am 11:47 AM

이전에 JavaScript에서 불변성으로 작업하지 않은 경우 변수를 새로운 값 또는 재 할당과 혼동하기가 쉽습니다.

최신 CSS 기능을 갖춘 사용자 정의 스타일링 양식 입력최신 CSS 기능을 갖춘 사용자 정의 스타일링 양식 입력Apr 11, 2025 am 11:45 AM

시맨틱하고 액세스 가능한 상태를 유지하면서 요즘 사용자 정의 확인란, 라디오 버튼 및 토글 스위치를 만들 수 있습니다. 우리는조차 필요하지 않습니다

각주 문자각주 문자Apr 11, 2025 am 11:34 AM

각주에 적합한 특수 슈퍼 세트 번호 문자가 있습니다. 여기에 다음과 같습니다.

HTML, CSS 및 JavaScript로 애니메이션 카운트 다운 타이머를 만드는 방법HTML, CSS 및 JavaScript로 애니메이션 카운트 다운 타이머를 만드는 방법Apr 11, 2025 am 11:29 AM

프로젝트에 카운트 다운 타이머가 필요한 적이 있습니까? 그런 것은 플러그인에 도달하는 것이 당연하지만 실제로는 훨씬 더 많습니다.

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 옷 제거제

AI Hentai Generator

AI Hentai Generator

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

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

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

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

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

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경