Blazor 연구소

6. 격리된 CSS에서 자식 접근 하기 (razor.css)


이 방법을 몰라서 dotnet/aspnetcore 레포 문 앞까지 다녀왔습니다. (눈물)

결론부터 말하면 격리된 CSS에서도 아래와 같이 ::deep을 통해 자식 요소를 찾는 것이 가능합니다.

::deep

아래 razor.cs 내용을 통해 이를 확인할 수 있습니다.

.vote {
    ...
}
    .vote:hover {
        ...
    }
    .vote ::deep svg {
        width: 14px;
        height: 14px;
        margin-right: 2px;
    }
        .vote ::deep svg path {
            fill: #CCCCCC;
        }

.vote-checked {
   ...
}
    .vote-checked ::deep svg path {
        fill: #0969DA !important;
    }

svg, path는 .vote 컴포넌트의 내부에 자리하고 있기 때문에, 격리된 CSS에서는 기본적으로 접근을 허용하지 않습니다.

그래서 이 때 ::deep을 통해 하위 요소의 접근이 가능해집니다.


이 방법은 @naratteu 님의 도움을 받았습니다.

이제, 저는 글로벌 css에 의존하지 않고도 컴포넌트를 분산화 시킬 수 있겠네요.

다음 스포일러는 지금까지 연구된 기술을 바탕으로 ToggleButton을 한번 만들어 볼 계획입니다. (이미 만들어 놨지만…) 독립된 컴포넌트, 양방향 바인딩과 razor.css를 통해 제가 어떻게 컴포넌트를 설계 했을지 살펴보는 시간이 되겠습니다.

image

3개의 좋아요