CSS 부모 선택기가 있습니까?


질문

 

앵커 요소의 직접 부모 인

  • 요소를 어떻게 선택합니까?

    예를 들어, 내 CSS는 다음과 같을 것입니다.

    li < a.active {
        property: value;
    }
    

    분명히이 작업을 JavaScript로 수행하는 방법이 있습니다. 그러나 CSS 레벨 2에 원시하는 일종의 해결 방법이 있기를 바랍니다.

    스타일을 시도하는 메뉴는 CMS에 의해 분출되고 있으므로 활성 요소를

  • 요소로 이동할 수 없습니다 ... (내가하지 않는 메뉴 작성 모듈을 테마로하지 않으면)....에

    어떤 아이디어가 있습니까?


    답변

     

    현재 CSS에서 요소의 부모를 선택할 수있는 방법은 없습니다. 적어도 모든 브라우저에서 작동하는 방식이 아닙니다.

    그것을 할 수있는 방법이있는 경우 현재 CSS 선택기 사양 중 하나에있을 것입니다.

    선택기 레벨 3 사양 CSS 2.1 선택기 Spec.

    즉, 선택기 레벨 4 작업 초안은 다음을 포함합니다.이 기능을 제공 할 수있는 () 의사 클래스.그것은 jQuery 구현과 유사합니다.

    li:has(> a.active) { /* styles to apply to the li tag */ }
    

    그러나 2022 년 현재 Safari에서만 지원됩니다.

    그 동안 상위 요소를 선택 해야하는 경우 JavaScript에 의지해야합니다.



    답변

    예 : : has ()

    브라우저 지원 : 낮음



    답변

    CSS에서만 부모를 선택할 수 있다고 생각하지 않습니다.

    그러나 당신이 이미. 활성 수업을 가지고있는 것처럼 보이는 것처럼, 그 수업을 li (대신 a)로 옮기는 것이 더 쉬울 것입니다.그렇게하면 LI와 A VIA CSS 만 모두 액세스 할 수 있습니다.



    답변

    이 스크립트를 사용할 수 있습니다.

    *! > input[type=text] { background: #000; }
    

    그러면 텍스트 입력의 부모가 선택됩니다.그러나 잠깐, 여전히 훨씬 더 많습니다.원하는 경우 지정된 부모를 선택할 수 있습니다.

    .input-wrap! > input[type=text] { background: #000; }
    

    또는 활성 상태 일 때 선택하십시오.

    .input-wrap! > input[type=text]:focus { background: #000; }
    

    이 HTML을 확인하십시오.

    <div class="input-wrap">
        <input type="text" class="Name"/>
        <span class="help hide">Your name sir</span>
    </div>
    

    입력이 활성화되어 표시되면 해당 Span.Help를 선택할 수 있습니다.

    .input-wrap! .help > input[type=text]:focus { display: block; }
    

    더 많은 기능이 있습니다.플러그인의 문서를 확인하십시오.

    BTW, 그것은 Internet Explorer에서 작동합니다.



    답변

    두 사람이 언급 한 바와 같이, 요소의 부모 /가 단지 CSS를 사용하여 스타일을 스타일링 할 수있는 방법은 없지만 다음은 jQuery에서 작동합니다.

    $("a.active").parents('li').css("property", "value");
    


    답변

    부모 선택기가 없습니다.이전 형제 선택자가없는 방식 만 있습니다.이러한 선택기가없는 한 가지 좋은 이유는 브라우저가 요소의 모든 아이들을 통해 클래스가 적용되어야하는지 여부를 결정하기 때문입니다.예를 들어, 쓴 경우 :

    body:contains-selector(a.active) { background: red; }
    

    그런 다음 브라우저는 가 페이지가 빨간색이어야하는지 여부를 결정할 때까지 모든 것을로드하고 파싱 할 때까지 기다려야합니다.

    상위 선택기가없는 기사는이를 자세하게 설명합니다.

    출처:https://stackoverflow.com/questions/1014861/is-there-a-css-parent-selector