찾다
웹 프론트엔드CSS 튜토리얼CSS 선택기: 최신 웹 디자인을 위한 고급 선택기 잠금 해제

안녕하세요 여러분! 내 블로그에 오신 것을 환영합니다. ?

소개

오늘은 고급 CSS 선택기의 세계에 대해 알아 보겠습니다. :is(), :where(), :not() 및 :has()와 같은 선택자는 특정 규칙이나 브라우저 지원 문제로 인해 처음에는 약간 까다로워 보일 수 있지만 다음을 위한 매우 강력한 도구입니다. 보다 효율적이고 동적인 CSS를 만듭니다. 이러한 선택기를 함께 살펴보고, 작동 방식을 이해하고, 실제로 작동하는 모습을 살펴보고, 몇 가지 추가 사항에 대해 논의해 보겠습니다.

이 글에서 배울 내용

  • 각 선택자 이해 : :is(), :where(), :not(), :has()로 구분합니다.

  • 브라우저 지원: 어떤 브라우저가 이러한 선택기를 지원하는지 알 수 있습니다.

  • 특수성 통찰력: 이러한 선택자가 CSS 규칙 적용에 미치는 영향

  • 실용 사례: 이러한 선택기가 CSS를 어떻게 단순화할 수 있는지 보여주는 실제 사용 사례입니다.

  • 모범 사례: 이러한 선택기를 효과적으로 사용하기 위한 팁

? :is() 선택기

:is() 란 무엇인가요?

:is() 의사 클래스 함수를 사용하면 동일한 속성을 반복하지 않고도 여러 선택기에 스타일을 적용할 수 있습니다. 이는 서로 다른 특이성을 지닌 선택자를 그룹화하는 데 특히 유용합니다.

예:

<div>





<pre class="brush:php;toolbar:false">:is(.alert.success, .alert.error, .alert.warning) {
    font-weight: bold;
    border: 1px solid;
    border-radius: 4px;
}

.alert.success { border-color: green; }
.alert.error { border-color: red; }
.alert.warning { border-color: orange; }

결과: 모든 경고 유형에는 특정 클래스에 의해 정의된 색상과 함께 굵은 글꼴과 테두리가 표시됩니다.

CSS Selectors: Unlocking Advanced Selectors for Modern Web Design

?팁: Codepen의 모든 예제를 복사하여 붙여넣어 실제 결과를 확인할 수 있습니다.

? :where() 선택기

:where() 가 무엇인가요?

:is(), :where() 그룹 선택기와 유사하지만 특이도가 0이므로 재정의하기 쉬운 스타일을 만드는 데 이상적입니다.

예:

<button>





<pre class="brush:php;toolbar:false">/* Button styles with low specificity */
:where(button, input[type="button"], input[type="submit"]) {
    font-size: 1rem;
    padding: 0.5em 1em;
    background-color: #f0f0f0;
    border: none;
    cursor: pointer;
}

/* Specific override for primary buttons */
button.primary {
    background-color: #007BFF;
    color: white;
}

결과:

CSS Selectors: Unlocking Advanced Selectors for Modern Web Design

? :not() 선택기

:not() 이 무엇인가요?

:not() 의사 클래스는 선택 항목에서 특정 요소를 제외하는 데 사용됩니다. 특정 요소나 클래스를 제외한 모든 것에 스타일을 적용하는 데 적합합니다.

예:


  • /* Style all list items except those marked as 'done' */
    li:not(.done) {
        background-color: #f0f0f0;
    }
    
    /* Darken the text for completed items */
    li.done {
        color: #888;
    }
    
    

    결과:

    CSS Selectors: Unlocking Advanced Selectors for Modern Web Design

    ? :has() 선택기

    :has() 가 무엇인가요?

    :has() 의사 클래스를 사용하면 포함된 내용에 따라 요소의 스타일을 지정할 수 있습니다. 이 선택기는 매우 강력하지만 이 글을 쓰는 시점에는 브라우저 지원이 제한되어 있습니다.

    예:

    <div>
    
    
    
    
    
    <pre class="brush:php;toolbar:false">:is(.alert.success, .alert.error, .alert.warning) {
        font-weight: bold;
        border: 1px solid;
        border-radius: 4px;
    }
    
    .alert.success { border-color: green; }
    .alert.error { border-color: red; }
    .alert.warning { border-color: orange; }
    
    
    <button>
    
    
    
    
    
    <pre class="brush:php;toolbar:false">/* Button styles with low specificity */
    :where(button, input[type="button"], input[type="submit"]) {
        font-size: 1rem;
        padding: 0.5em 1em;
        background-color: #f0f0f0;
        border: none;
        cursor: pointer;
    }
    
    /* Specific override for primary buttons */
    button.primary {
        background-color: #007BFF;
        color: white;
    }
    

    결과:

    CSS Selectors: Unlocking Advanced Selectors for Modern Web Design

    브라우저 지원

    • :is() :where(): 최신 브라우저는 일반적으로 이를 지원하지만 항상 최신 호환성 데이터를 확인하세요.
    • :not(): 광범위하게 지원되지만 :not() 내부의 복잡한 선택기는 이전 브라우저에서 작동하지 않을 수 있습니다.
    • :has(): 다른 브라우저에서 실험적으로 지원되는 최신 버전의 Safari로 제한됩니다. 더 넓은 호환성을 위해 주의해서 사용하거나 폴리필을 사용하세요.

    특수성 고려사항

    • :is() 및 :where()는 포함된 선택기에서 가장 높은 특이성을 상속하며 :where() 자체는 특이성이 0입니다.
    • :not()의 특이성은 포함된 선택자의 특이성입니다.
    • :has()는 내부 선택기에 따라 달라지므로 복잡한 특이성 문제가 발생할 수 있지만 특이성 점수에 직접적으로 추가되지는 않습니다.

    고급 선택기 사용 모범 사례

    • DRY CSS에 사용 : 이 선택기는 반복을 줄여 CSS를 더 유지 관리하기 쉽게 만듭니다.
    • 성능 고려 : 복잡한 선택자는 성능에 영향을 미칠 수 있으며, 특히 중첩된 선택자는 더욱 그렇습니다.
    • 이전 브라우저를 위한 대체 : :has()를 사용할 때 대체가 있는지 확인하거나 @supports와 함께 기능 쿼리를 사용하세요.
    • 남용 방지 : 강력하지만 선택기를 지나치게 복잡하게 만들지 마십시오. 가독성이 중요합니다.

    실용적 적용

    • 스타일 구성 요소 : 다양한 버튼 클래스 또는 양식 요소 전반에 걸쳐 공통 스타일에 :is() 및 :where()를 사용합니다.

    • 동적 레이아웃 : :has()는 특정 요소가 있으면 상위 요소의 스타일이 변경되는 적응형 레이아웃에 사용할 수 있습니다.

    • 반응형 디자인: 더욱 역동적이고 상황에 맞는 디자인을 위해 이러한 선택기와 미디어 쿼리를 결합합니다.

    결론

    고급 CSS 선택기를 사용하면 스타일시트를 간소화하여 더 깔끔하고 효율적으로 만들 수 있습니다. 특히 :has()에 대한 브라우저 지원을 주시하고 이러한 선택기를 현명하게 사용하여 유지 관리성을 희생하지 않고 CSS를 향상시키세요.

    즐거운 코딩을 즐기시기 바랍니다. CSS를 필요한 만큼 선택적으로 활용하시기 바랍니다! ?


    ? 안녕하세요. 저는 커뮤니티 매니저개발자, 대중연설가, 콘텐츠 크리에이터

    엘레프테리아입니다.

    ? 이 기사가 마음에 드셨다면 공유해 보세요.

    ? 모든 링크 | X | 링크드인

위 내용은 CSS 선택기: 최신 웹 디자인을 위한 고급 선택기 잠금 해제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
@keyframes 및 @Media와 같이 @Rules는 얼마나 많은 특이성을 가지고 있습니까?@keyframes 및 @Media와 같이 @Rules는 얼마나 많은 특이성을 가지고 있습니까?Apr 18, 2025 am 11:34 AM

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

@Media 및 @Support 쿼리를 중첩 할 수 있습니까?@Media 및 @Support 쿼리를 중첩 할 수 있습니까?Apr 18, 2025 am 11:32 AM

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

빠른 Gulp 캐시 파열빠른 Gulp 캐시 파열Apr 18, 2025 am 11:23 AM

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

CSS의 품질과 복잡성을 모니터링하는 스택을 찾아CSS의 품질과 복잡성을 모니터링하는 스택을 찾아Apr 18, 2025 am 11:22 AM

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

Datalist는 가치를 시행하지 않고 값을 제안하는 것입니다Datalist는 가치를 시행하지 않고 값을 제안하는 것입니다Apr 18, 2025 am 11:08 AM

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

취리히에서 열린 전면 회의취리히에서 열린 전면 회의Apr 18, 2025 am 11:03 AM

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

CloudFlare Workers와 함께 풀 스택 서버리스 애플리케이션 구축CloudFlare Workers와 함께 풀 스택 서버리스 애플리케이션 구축Apr 18, 2025 am 10:58 AM

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

NUXT 응용 프로그램에서 동적 경로 생성NUXT 응용 프로그램에서 동적 경로 생성Apr 18, 2025 am 10:53 AM

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

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를 무료로 생성하십시오.

뜨거운 도구

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전

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

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

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

PhpStorm 맥 버전

PhpStorm 맥 버전

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

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 통합 개발 환경